如何使用 FbTransactionOptions / TransactionBehavior 来实现等待?
我找到了一些关于使用 FbTransactionOptions / TransactionBehavior 的信息,但没有足够的细节来实现。
string stCmd = "UPDATE " + stTableName + " SET " + liststFieldNamesNoKeyID[0] + " = @p0";
for (int iii = 1; iii < liststFieldNamesNoKeyID.Count(); iii++)
stCmd += ", " + liststFieldNamesNoKeyID[iii] + " = @p" + iii.ToString();
stCmd += " WHERE" + stFieldKeyID + "= @p" + liststFieldNamesNoKeyID.Count().ToString();
FbTransaction fbTransaction = fbConn.BeginTransaction();
new FbTransactionOptions()
{
TransactionBehavior = FbTransactionBehavior.Concurrency |
FbTransactionBehavior.Wait
};
using (FbCommand fbCmd = new FbCommand(stCmd, fbConn, fbTransaction)) {
for (int iii = 0; iii < liststFieldNamesNoKeyID.Count(); iii++) {
string stPlaceHolder = "@p" + (iii).ToString();
string stValue = liststNewValuesNoKeyID[iii];
fbCmd.Parameters.AddWithValue(stPlaceHolder, stValue);
}
int iKeyID = Convert.ToInt32(stKeyID);
fbCmd.Parameters.AddWithValue("@p" + liststFieldNamesNoKeyID.Count().ToString(), iKeyID);
fbCmd.ExecuteNonQuery();
fbTransaction.Commit();
在上面的示例中,没有使用 TransactionBehavior。重新排列会导致编译器抱怨。
new FbTransactionOptions()
{
TransactionBehavior = FbTransactionBehavior.Concurrency |
FbTransactionBehavior.Wait
};
FbTransaction fbTransaction = fbConn.BeginTransaction(TransactionBehavior);
另外,如何设置 Wait 的值?