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

标签 c# sql-server ado.net

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

最佳答案

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

下面是一小部分代码,涵盖了 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();
   }
}

关于c# - 如何使用单个查询将数据集中的多条记录插入到 SQL Server 2005 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3879687/

相关文章:

c# - 将零字节写入网络流是检测关闭连接的可靠方法吗?

c# - 通过绑定(bind)在 TextBlock 中创建超链接

c# - 如何更改 DataTable 的列名?

c# - 重写 lambda 扩展方法

c# - 公交公交算法

mysql - 与平均值和长度相关的 SQL 查询

sql-server - 如何获取 SQL Server 2008 中当前行和前一行之间的百分比

sql-server - SQL Server 的数据库优化顾问是否会修改数据?

c# - 如何指示 DbConnection.GetSchema 返回其值的顺序?

c# - 如何将 DataReader 中的值放入 List<T>?