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

时间:2010-01-10 15:55:47

标签: c#

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

由于

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以运行此...但不要期望在之后拥有数据库或应用服务器。

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);
        }
    }

答案 2 :(得分:0)

  1. 阅读内存数据库中的一些文章。

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

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

答案 3 :(得分:0)

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

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);
        }
    }

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