DataTable最优保存到sql数据库
我在 SqlServer DB 表中有具有相同结构的 DataTable
。 要将此 DataTable 中的数据保存到 Sql DB,我使用以下代码:
sqlCommand mcd;
for(int i=0;i<dataTable.Rows.Count;i++)
{
mcd=new SqlCommand();
cmd.CommandText="Insert into MSSQLtable values("+dataTable.Rows[i][0]+dataTable.Rows[i][1]+")";
cmd.ExecuteNonQuery();
}
如何用其他方式插入数据?
I have DataTable
with same structure in SqlServer DB Table.
To save data in a this DataTable to Sql DB I use code below:
sqlCommand mcd;
for(int i=0;i<dataTable.Rows.Count;i++)
{
mcd=new SqlCommand();
cmd.CommandText="Insert into MSSQLtable values("+dataTable.Rows[i][0]+dataTable.Rows[i][1]+")";
cmd.ExecuteNonQuery();
}
How can I Insert Data with another way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
还有其他一些方法,请查看博客文章 我在这里写了关于从 .NET 高性能批量加载到 SQL Server 的内容。
总而言之,您可以使用 SqlDataAdapter 执行批量插入(或更新),或者为了获得更好的性能,您可以使用 SQLBulkCopy(仅插入)。所展示的 SqlDataAdapter 方法需要大约 25 秒才能将 100,000 条记录插入数据库,而 SqlBulkCopy 则需要大约 0.8 秒。
每种方法都有优点/缺点 - 例如,如果您想很好地处理错误并在特定行发生错误时继续,SqlDataAdapter 会很方便。
There's a few other ways, check out the blog post I wrote here on high performance bulk loading to SQL Server from .NET.
To summarise, you can use an SqlDataAdapter to perform batch inserts (or updates), or for better performance you can use SQLBulkCopy (inserts only). The SqlDataAdapter approach demonstrated there took ~25s to insert 100,000 records into the database, compared to ~0.8s for SqlBulkCopy.
There's pros/cons to each approach - e.g. SqlDataAdapter is handy if you want to handle errors nicely and continue in the event of an error with a particular row.