0

SQL2008サーバーに接続するVB.netCFアプリがあります。トランザクションを実装しようとしていますが、トランザクションの開始時にコードを壊すと、テーブルに対して特定の読み取りクエリを実行できません。たとえば、id<>123のテーブルからすべてのレコードを選択しても値は返されません。ただし、select * from stockは、作業中の行を除くすべての値を返します。

Dim SQLComm As Data.SqlClient.SqlCommand
Dim myConnString As String = frmConnectionDetails.GetConnectionString
Dim SQLConn As New SqlConnection(myConnString)
Dim SQLTrans As SqlTransaction
SQLConn.Open()
SQLTrans = SQLConn.BeginTransaction(Data.IsolationLevel.ReadCommitted)
SQLComm = New SqlCommand
SQLComm.Connection = SQLConn
SQLComm.Transaction = SQLTrans
AddOrUpdateStock(objStock, SQLConn, SQLComm)
 -Break here
4

1 に答える 1

0

トランザクションを開始すると、レコードはロックされ、コミットまたはロールバックするまでアクセスできなくなります。このをMSDNで見てください。

また、Data.IsolationLevelは接続レベルで適用されます。ダーティリードを実行したい場合は、を使用する必要がありますReadUncommitted

于 2011-06-06T20:54:26.570 に答える