我主要只是好奇我的方法是否正确。我要做的是循环两个数组并将索引处的值插入到我的数据库中,如果出现故障则回滚。
我在想什么看起来像这样。
SqlCommand cmd = new SqlCommand();
SqlConnection cn = new SqlConnection(s.ConnectionString.ConnectionString);
cmd.Connection = cn;
cmd.CommandText = "asp_FinalInspectionTransaction";
cmd.CommandType = CommandType.StoredProcedure;
SqlTransaction trans = cn.BeginTransaction();
cmd.Transaction = trans;
cn.Open();
try
{
for (int i = 0; i < array1.Length - 1; i++)
{
cmd.Parameters.AddWithValue("@MasterID", masterID);
cmd.Parameters.AddWithValue("@TagName", array1[i]);
cmd.Parameters.AddWithValue("@TagValue", array2[i]);
cmd.ExecuteNonQuery();
cmd.Parameters = new SqlParameterCollection();
}
trans.Commit();
}
catch (SqlException e)
{
LogManager lm = new LogManager();
lm.WriteErrorTextLog(e, "Broken Manager - Final Inspection Broker");
lm.Dispose();
trans.Rollback();
}
catch (Exception e)
{
LogManager lm = new LogManager();
lm.WriteErrorTextLog(e, "Broken Manager - Final Inspection Broker");
lm.Dispose();
trans.Rollback();
}
finally
{
cn.Close();
}
我仍在学习 ADO.Net 的所有内容,并且没有使用 SQL 存储过程之外的事务。我知道我可以将它放入 XML 并在它自己的存储过程中执行所有循环和插入。只是好奇这条路线是否也能奏效。任何建议将不胜感激。