protected void btnHiddenCheckIn_Click(object sender, EventArgs e)
{/ointments();
ScriptManager.RegisterStartupScript(this, this.GetType(), "starScript", "checkINClick('" + hidPatientName.Value + "');", true);
return;
}
}
}
}
问问题
83 次
1 回答
0
尼基尔,
在顶部声明SqlTransaction objSqlTransaction;
,但不要初始化它!
您在哪里设置objSqlDbComm
Connection、TimeOut 等属性...您需要传递 SqlTransaction 对象来设置SqlCommand.Transaction
属性!
现在你要开始事务初始化对象:
objSqlTransaction = Master.objSqlDbComm.SqlConnectionObject.BeginTransaction();
当您完成插入和更新时,可能在 else... 的末尾... write transaction.Commit();
,如果不成功将抛出异常...因此将 try catch 添加到您的代码中,在开始 try 和 catch 之前声明 SqlTransactiontransaction.RollBack();
请参阅 MSDN 上的完整示例:
SqlTransaction
更新:
那是因为您对 ExecuteNonQuery 和 ExecuteDataSet 使用相同的 SqlCommand 对象,当 ExecuteDataSet 时您需要使用不同的 SqlCommand 对象......因为您的 SqlCommand 是事务的一部分!
于 2012-12-01T12:19:03.600 回答