在SQL中插入多行作为sqlparameter
我的数据表中有1000行在SQL中插入多行作为sqlparameter,sql,sql-server-2008,Sql,Sql Server 2008,我的数据表中有1000行dt,我想一次将所有这些数据插入到我的sql表中。我知道如何使用for循环实现这一点。但我想知道是否有其他更好的方法可以一次将所有行插入datatbase。 我当前插入此数据的代码如下 DataTable dt = result.Tables[0]; SqlHelper.ExecuteScalar(GlobalSettings.DbDSN, CommandType.Text, "IN
dt
,我想一次将所有这些数据插入到我的sql表中。我知道如何使用for循环实现这一点。但我想知道是否有其他更好的方法可以一次将所有行插入datatbase。
我当前插入此数据的代码如下
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
类来实现这一点。简而言之,创建并打开一个SqlConnection
,然后使用此代码将其从DataTable
批量复制到服务器
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn))
{
bulkCopy.DestinationTableName = "tbl_Projects";
bulkCopy.WriteToServer(dt);
}
您还可以使用表类型参数并将整个数据集从C#传递到SQL Server 请参阅此问题:使用C#使用
SqlBulkCopy bulkcopy=newsqlbulkcopy(con)
一次可以插入10行
DataTable dt = new DataTable();
dt.Columns.Add("a");
dt.Columns.Add("b");
dt.Columns.Add("c");
dt.Columns.Add("d");
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["a"] = 1;
dr["b"] = 2;
dr["c"] = "Charan";
dr["d"] = 4;
dt.Rows.Add(dr);
}
SqlConnection con = new SqlConnection("Connection String");
using (SqlBulkCopy bulkcopy = new SqlBulkCopy(con))
{
con.Open();
bulkcopy.DestinationTableName = "Sample";
bulkcopy.WriteToServer(dt);
con.Close();
}
DataTable dt=newdatatable();
dt.列。添加(“a”);
dt.列。添加(“b”);
dt.列。添加(“c”);
dt.列。添加(“d”);
对于(int i=0;i<10;i++)
{
DataRow dr=dt.NewRow();
dr[“a”]=1;
dr[“b”]=2;
dr[“c”]=“Charan”;
dr[“d”]=4;
dt.Rows.Add(dr);
}
SqlConnection con=新的SqlConnection(“连接字符串”);
使用(SqlBulkCopy-bulkcopy=newsqlbulkcopy(con))
{
con.Open();
bulkcopy.DestinationTableName=“样本”;
bulkcopy.WriteToServer(dt);
con.Close();
}