我已将数据集批量插入SQL。但我不确定如何将数据集合(列表)插入SQL表中。我还需要在整个插入过程中维护事务。
我试过了,如下所示。
using (SqlConnection sqlConn = new SqlConnection(ConnectionString)
{
sqlConn.Open();
using (SqlTransaction sqlTran = sqlConn.BeginTransaction())
{
try
{
foreach (CustomClass item in ListOfData)
{
string query = "Build the Query Here";
SqlCommand sqlComm = new SqlCommand(query, sqlConn, sqlTran);
sqlComm.ExecuteNonQuery();
}
sqlTran.Commit();
}
catch (Exception ex)
{
sqlTran.Rollback();
throw ex;
}
}
}
但我不确定,这是否是一种正确的方式。。?请提供建议。
如果它是批量的,我仍然会使用SqlBulkCopy。只要数据不是巨大,我就会从列表中构造一个DataTable(可能使用反射或FastMember),然后将其传递给SqlBulkCopy实例(并提供事务)。