根据我的理解,C#SQLCommand中的execute nonquery命令必须返回受影响记录的数量,我已经将此SQLCommand与SQL Transaction一起使用,它返回一个负数,但是当我检查数据库时,已经插入了记录。
我想要实际实现的是,只有在成功地将数据插入数据库时才提交,现在我试图通过检查executeNoneQuery命令的返回值来实现这一点,但就像我说它返回负数一样对我说,查询可能没有成功,但数据库记录似乎暗示不然。
我在这里缺少什么东西,我可能错误地实现了我的SQlCommand和SQLTransaction
这是我目前的代码
using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.AppSettings["SQLConnString"]))
{
sqlConn.Open();
using (sqlTrans = sqlConn.BeginTransaction())
{
using (SqlCommand command = new SqlCommand("dbo.sp_InsertWizardImport", sqlConn, sqlTrans))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@GL_ACC", GL_ACC));
command.Parameters.Add(new SqlParameter("@DOC_REF_NUM ", DOC_REF_NUM));
int record = command.ExecuteNonQuery();
sqlTrans.Commit();
str2 = _reader.ReadLine();
}
}
}
存储的prod当然有更多的变量,但我只包括2和其他我认为有问题的代码和平