-3
protected void btnHiddenCheckIn_Click(object sender, EventArgs e)
{/ointments();

                ScriptManager.RegisterStartupScript(this, this.GetType(), "starScript", "checkINClick('" + hidPatientName.Value + "');", true);
                return;
            }
        }
    }
}
4

1 回答 1

0

尼基尔,

在顶部声明SqlTransaction objSqlTransaction;,但不要初始化它!

您在哪里设置objSqlDbCommConnection、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 回答