SqlBulkCopy 极速插入数据

SqlBulkCopy sqlBulkCopy =null; //声明SqlBulkCopy对象
try
{
DbHelper db =new DbHelper(); //微软DbHelper类
using (SqlConnection sqlCon = (SqlConnection)DbHelper.CreateConnection())
{
sqlBulkCopy =new SqlBulkCopy(sqlCon); //实例化SqlBulkCopy对象
sqlBulkCopy.BulkCopyTimeout =180; //180秒执行超时
string strSql ="select * from Invoice where 1 = 2"; //获取Invoice表结构 的SQL语句 不读取表中的数据
DbCommand cmd = db.GetSqlStringCommond(strSql);
DataTable dt = db.ExecuteDataTable(cmd); //得到只有表结构的数据表Datetable
for (long i = startSb; i <= endSn; i++) //向表中添加数据
{
DataRow drNew = dt.NewRow();
drNew["InvoiceID"] = i;
drNew["Price"] = price;
drNew["Manager"] = workerID;
drNew["IsHandwritten"] = IsHandwritten.ToString().ToLower();
dt.Rows.Add(drNew);
}
sqlCon.Open(); //打开数据库连接
sqlBulkCopy.DestinationTableName ="Invoice"; //指定要将数据填入的数据库中的物理表名
sqlBulkCopy.WriteToServer(dt); //将数据表写入数据库指定的表中
sqlCon.Close(); //关闭连接
}
}
catch (SqlException ex)
{
Console.WriteLine(ex.Message);
//throrw
}
finally
{
if(sqlBulkCopy !=null)
sqlBulkCopy.Close(); //关闭
}
try
{
DbHelper db =new DbHelper(); //微软DbHelper类
using (SqlConnection sqlCon = (SqlConnection)DbHelper.CreateConnection())
{
sqlBulkCopy =new SqlBulkCopy(sqlCon); //实例化SqlBulkCopy对象
sqlBulkCopy.BulkCopyTimeout =180; //180秒执行超时
string strSql ="select * from Invoice where 1 = 2"; //获取Invoice表结构 的SQL语句 不读取表中的数据
DbCommand cmd = db.GetSqlStringCommond(strSql);
DataTable dt = db.ExecuteDataTable(cmd); //得到只有表结构的数据表Datetable
for (long i = startSb; i <= endSn; i++) //向表中添加数据
{
DataRow drNew = dt.NewRow();
drNew["InvoiceID"] = i;
drNew["Price"] = price;
drNew["Manager"] = workerID;
drNew["IsHandwritten"] = IsHandwritten.ToString().ToLower();
dt.Rows.Add(drNew);
}
sqlCon.Open(); //打开数据库连接
sqlBulkCopy.DestinationTableName ="Invoice"; //指定要将数据填入的数据库中的物理表名
sqlBulkCopy.WriteToServer(dt); //将数据表写入数据库指定的表中
sqlCon.Close(); //关闭连接
}
}
catch (SqlException ex)
{
Console.WriteLine(ex.Message);
//throrw
}
finally
{
if(sqlBulkCopy !=null)
sqlBulkCopy.Close(); //关闭
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?