今天做了一个批量数据添加的表中的功能,如果一条一条的添加肯定是不明智的,所以就找了一下相关资料,代码如下:
/// <summary>
/// 导入数据库
/// </summary>
/// <param name="dt"></param>
private void WriteToTable(DataTable dt)
{
string constr="数据库连接字符串";
SqlBulkCopy sqlbulk = new SqlBulkCopy(constr, SqlBulkCopyOptions.UseInternalTransaction);
//订阅复制完成后的方法
sqlbulk.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnRowsCopied);
sqlbulk.NotifyAfter = dt.Rows.Count;
//目标数据库表名
sqlbulk.DestinationTableName = "sm_ServiceContractDetail";
//数据集字段索引与数据库字段索引映射
//第一个参数数据来源表中的字段索引/名称,第二个参数为目标数据库字段索引/名称
sqlbulk.ColumnMappings.Add("a", "a");//列对应,就是现在表中的列对应到数据库表中的列
sqlbulk.ColumnMappings.Add("b", "b");
//导入
sqlbulk.WriteToServer(dt);
sqlbulk.BulkCopyTimeout = 900000;
sqlbulk.Close();
}