C# sql server 批量插入sqlbullcopy类

在程序中,数据库插入数据无非就是逐条和批量。

逐条:如果需要批量插入时,使用逐条效率就很差了(因为每次都需要创建数据库连接,打开数据库,关闭数据库.)

使用sqlbullcopy批量:在程序中定义一个DataTable,把需要插入的数据存储在DataTable中,注意:“DataTable中的列需与数据库中保持一致,即使是自增字段也要在DataTable中有对应的列。”


//数据库连接
string Connstr = "Data Source=127.0.0.1;Initial Catalog=LocalDB;Persist Security Info=True;User ID=sa;Password=sa123;";
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Password", Type.GetType("System.String"));
dt.Columns.Add("AddTime", typeof(DateTime));

Stopwatch sw = new Stopwatch();
sw.Start();

for (int i = 0; i < 10000; i++)
{
dt.Rows.Add(null, "name" + i, "pw" + i, DateTime.Now);
}
using (SqlConnection conn = new SqlConnection(Connstr))
{
SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);
bulkCopy.DestinationTableName = "TestTable";
bulkCopy.BatchSize = dt.Rows.Count;
conn.Open();
if (dt != null && dt.Rows.Count != 0)
{
bulkCopy.WriteToServer(dt);
}
}

sw.Stop();
TimeSpan ts = sw.Elapsed;
Console.WriteLine(ts.TotalMilliseconds);
Console.ReadKey();

 

posted @ 2022-07-06 15:43  万万万W  阅读(17)  评论(0编辑  收藏  举报