我的数据表中有 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/