如何将SQL Server DB加载到数据集中?

我想将我拥有的整个数据库(SQL Server)加载到数据集中,以便我可以使用多个表及其关系。 我知道这可能不赞成,但我怎么能这样做(我将使用DataRelation和Table对象)?

谢谢

除非我遗漏了某些内容,否则这只是生成数据集然后更改Fill方法以删除WHERE部分的简单情况。 然后确保以正确的顺序调用填充(主,然后详细)以确保您保持参照完整性。

您可以运行此…但不要期望之后有db或app服务器。

using (SqlConnection conn = new SqlConnection("YourConnectionString")) { using (SqlCommand command = new SqlCommand("exec sp_msforeachtable 'select * FROM ?'", conn)) { conn.Open(); DataSet ds = new DataSet(); command.Fill(ds); } } 
  1. 阅读内存数据库中的一些文章。

  2. @Randolph Potter的想法是一个选项 – 您可以从服务器获取表的列表,然后迭代列表并加载所有表。 我想你可以对FK和关系做同样的事情。

  3. 您可以使用设计器自动执行此操作 – 使用从服务器资源管理器拖放到数据集(VS2008),并使用一些代码将整个内容加载到内存中。

我想你可以在一个存储过程中做多个选择,然后填充一个数据集。

 using (SqlConnection conn = new SqlConnection("YourConnectionString")) { using (SqlDataAdapter command = new SqlDataAdapter("usp_YourStoredProcedure", conn)) { command.CommandType = CommandType.StoredProcedure; conn.Open(); DataSet ds = new DataSet(); command.Fill(ds); } } 

我同意这里的其他评论,除非你的数据库很小,否则这是一个非常糟糕的主意。