0
私はエンタープライズライブラリデータアクセスブロックをトランザクションで使用していますが、トランザクションコードブロックで他のメソッド(selectコマンド)を呼び出すと、トランザクションがdbをロックするためタイムアウトエラーが発生します。EntLib 5トランザクションエラー
トランザクションでselectコマンドを呼び出すにはどうすればよいですか?
マイコード:
dbConn.Open();
using (dbConn)
{
using (dbTrans = dbConn.BeginTransaction())
{
try
{
var cmd = dbClass.GetStoredProcCommand("Test_Insert");
dbClass.AddInParameter(cmd, "@No", DbType.String, "Test");
dbClass.AddOutParameter(cmd, "@ReturnValue", DbType.Int32, 4);
retval = dbClass.ExecuteNonQuery(cmd, dbTrans);
if (retval > 0)
retval = Convert.ToInt32(dbClass.GetParameterValue(cmd, @ReturnValue"));
var dsDetail=GetDetail(retval); **<-- Error Line i waiting long times and get timeout error**
dbTrans.Commit();
}
}
}
private DataSetGetDetail (int TestID)
{
var TestSql = "Select * from
TestTable Where ID="+TestID;
var cmdTest = dbClass.GetSqlStringCommand(TestSql);
var dsTest= dbClass.ExecuteDataSet(cmd);
return dsTest;
}