如何使用单个查询将数据集中的多个记录插入SQL Server 2005?

Sum*_*pta 5 c# sql-server ado.net

我在ADO.NET中有一个包含来自用户端的多条记录的数据集.我需要在单个查询中将所有这些行插入到数据库中,以避免多次查询

kev*_*ers 4

也许像批量复制这样的东西就是一个答案。下面代码项目中的示例展示了如何使用数据表来执行此操作,但您应该能够更改示例以使用数据集。

下面是一小部分代码,涵盖了 SQL Server 中的连接和执行(摘自CodeProject)。

需要注意的关键部分是bulkcopy.WriteToServer( SourceTable ); SourceTable 是否是您要传递给它的 DataSet 的一部分

//First create a connection string to destination database
string connectionString;
connectionString = <EM>YourConnectionString</EM>and
    Initial Catalog=TestSMODatabase";

//Open a connection with destination database;
using (SqlConnection connection = 
       new SqlConnection(connectionString))
{
   connection.Open();

   //Open bulkcopy connection.
   using (SqlBulkCopy bulkcopy = new SqlBulkCopy(connection))
   {
    //Set destination table name
    //to table previously created.
    bulkcopy.DestinationTableName = "dbo.TestTable";

    try
    {
       bulkcopy.WriteToServer(SourceTable); // SourceTable would come from your DataSet
    }
    catch (Exception ex)
    {
       Console.WriteLine(ex.Message);
    }

    connection.Close();
   }
}
Run Code Online (Sandbox Code Playgroud)