0

テーブルからデータを選択する必要があります。私の問題は、sqltransactionsを使用してテーブルに行を挿入することです。これにより、挿入が実行されるとテーブルがロックされます。次に、このテーブルからデータを選択して、それを実行できないためにさらに実行する必要があります。私もnolockを使ってみましたが、役に立ちませんでした。

私のコードはこんな感じです

Database.myConnection = new SqlConnection(Database.SQLConnectionString);
Database.myConnection.Open();

Database.myTrans =  Database.myConnection.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted, "SampleTransaction");
// Must assign both transaction object and connection
// to Command object for a pending local transaction
Database.myCommand = Database.myConnection.CreateCommand();
Database.myCommand.Connection = Database.myConnection;
Database.myCommand.Transaction = Database.myTrans;
Database.ExecuteSqlNonQuery("INSERT INTO customer(CustomerNo,CustomerName)VALUES('121','asd')");

今、顧客テーブルから選択しようとしましたが、デッドロックになります。nolockでも選択しようとしましたが、結果がありません。

4

1 に答える 1

0

UPDATE と SELECT の両方に接続オブジェクトを再利用します。

複数の更新を実行する場合は、メソッド間の接続を渡すだけです。USINGステートメントで必ずラップしてください

using (SqlConnection Conn = new SqlConnection(...))
{
    Method1(conn);
    Method2(conn);
}
于 2012-07-11T16:10:21.830 に答える