Sql server 数据表优化保存到sql数据库
我在SQLServerDB表中有结构相同的Sql server 数据表优化保存到sql数据库,sql-server,ado.net,Sql Server,Ado.net,我在SQLServerDB表中有结构相同的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.Execu
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();
}
sqlCommand-mcd;
对于(inti=0;i还有其他几种方法,请查看关于从.NET向SQL Server高性能批量加载的博客文章
总之,您可以使用SqlDataAdapter执行批插入(或更新),或者为了获得更好的性能,您可以使用SQLBulkCopy(仅限插入)。这里演示的SqlDataAdapter方法需要约25秒才能将100000条记录插入数据库,而SQLBulkCopy需要约0.8秒
每种方法都有优点/缺点-例如,如果您想很好地处理错误,并在特定行发生错误时继续,SqlDataAdapter非常方便。是否可以从不同的数据库(例如,Oracle、VisualFoxPro)初始化数据然后使用SqlBulkCopy方法保存到Sql Server?@loviji-是的。您所需要做的就是将数据从另一个源加载到可以传递给SqlBulkCopy的内容中(例如,可以是数组或数据行、数据表或实现IDataReader的任何内容)。