BeginTransaction
ここにあるドキュメントに注意事項があることに気付きました。
http://msdn.microsoft.com/en-us/library/86773566.aspx
クエリが大量のデータを返し、BeginTransaction を呼び出すと、SQL Server が MARS を使用しているときに並列トランザクションを許可しないため、SqlException がスローされます。この問題を回避するには、リーダーを開く前に、常にトランザクションをコマンド、接続、またはその両方に関連付けます。
私がこれを変更するというこの提案はありますか:
sqlConn.Open();
System.Data.SqlClient.SqlTransaction trans = sqlConn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
sqlCmd.Transaction = trans;
System.Data.SqlClient.SqlDataAdapter adapt = new System.Data.SqlClient.SqlDataAdapter(sqlCmd);
adapt.Fill(dt);
これには、BeginTransaction
コマンドの前にOpen
コマンドを使用して、例で通常見られるものではありません...
System.Data.SqlClient.SqlTransaction trans = sqlConn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
sqlCmd.Transaction = trans;
sqlConn.Open();
System.Data.SqlClient.SqlDataAdapter adapt = new System.Data.SqlClient.SqlDataAdapter(sqlCmd);
adapt.Fill(dt);
そうでなければ、この警告が避けるように言っていることの例を誰か挙げることができますか?