-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 などのプロパティを設定する場所...SqlCommand.Transactionプロパティに設定するには、SqlTransaction オブジェクトを渡す必要があります。

トランザクションを開始したい場所で、オブジェクトを初期化します。

objSqlTransaction = Master.objSqlDbComm.SqlConnectionObject.BeginTransaction();

そして、挿入と更新が終了したら、else... write の最後にある可能性があります。transaction.Commit();成功しなかった場合は例外がスローされます...コードに try catch を追加し、try を開始する前に SqlTransaction を宣言し、catch でtransaction.RollBack();

MSDN の完全な例を参照してください:
SqlTransaction

更新:
これは、ExecuteNonQuery と ExecuteDataSet に同じ SqlCommand オブジェクトを使用しているためです。ExecuteDataSet の場合は別の SqlCommand オブジェクトを使用する必要があります... SqlCommand はトランザクションの一部であるためです!

于 2012-12-01T12:19:03.600 に答える