sql - 在SQL中插入多行作为sqlparameter

标签 sql sql-server-2008

我的数据表中有 1000 行 dt我想一次性将所有这些数据插入到我的 sql 表中。我知道如何用 for 循环来做到这一点。
我当前插入此数据的代码是这样的

 DataTable dt = result.Tables[0];


        SqlHelper.ExecuteScalar(GlobalSettings.DbDSN, CommandType.Text,
                                  "INSERT INTO tbl_Projects (Project,Owner,Consultant ,Contractor,Value ,Level1,Level2 ,Status  ,Country ,CreatedDate  ,CreatedByID ,CreatedByName) VALUES (@Project,@Owner,@Consultant ,@Contractor,@Value ,@Level1,@Level2 ,@Status  ,@Country ,@CreatedDate  ,@CreatedByID ,@CreatedByName)",
                                  new SqlParameter("@Project",dt.Rows[0].ItemArray[0]),
                                  new SqlParameter("@Owner", dt.Rows[0].ItemArray[1]),
                                  new SqlParameter("@Consultant", dt.Rows[0].ItemArray[2]),
                                  new SqlParameter("@Contractor", dt.Rows[0].ItemArray[3]),
                                  new SqlParameter("@Value", dt.Rows[0].ItemArray[4]),
                                  new SqlParameter("@Level1", dt.Rows[0].ItemArray[5]),
                                  new SqlParameter("@Level2", dt.Rows[0].ItemArray[6]),
                                  new SqlParameter("@Status", dt.Rows[0].ItemArray[7]),
                                  new SqlParameter("@Country", dt.Rows[0].ItemArray[8]),
                                  new SqlParameter("@CreatedDate", System.DateTime.Now),
                                  new SqlParameter("@CreatedByID", ""),
                                  new SqlParameter("@CreatedByName", ""));

任何人都可以帮我解决这个问题..

最佳答案

您可以通过利用 SqlBulkCopy 来做到这一点。类(class)。简而言之,得到一个 SqlConnection创建并打开,然后使用此代码从 DataTable 批量复制该代码。到服务器。

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn))
{
    bulkCopy.DestinationTableName = "tbl_Projects";
    bulkCopy.WriteToServer(dt);
}

关于sql - 在SQL中插入多行作为sqlparameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17723073/

相关文章:

sql - 使用 PostgreSQL 处理时间

c# - 使用C#登录网站连接现有的sql server db

sql-server - 将动态数据透视结果存储到 SQL Server 中的临时表中

sql-server - T-SQL MERGE - 找出它采取了哪些操作

mysql - 选择给定字符串的翻译

mysql - SQL - 如何自动选择 1 到 1000 之间剩余的最小 id

sql - 如何根据日期和类型分组

c# - 尝试分离附加数据库 - 之后无法访问数据库

mysql - 优化查询以不使用文件排序

c# - 如何从 C# 中的元组或模型计算百分比