我在我的代碼中使用SqlTransaction
作爲回滾目的。在事務中,我得到了多個要執行的語句,可能包括選擇插入和更新。所有這些陳述都在sqltransaction
的範圍內。一切工作都很好,只爲一個問題。我正在使用datareader
作爲select語句。這些讀者一旦使用就會關閉。這迫使連接丟失,每件事都失敗了。是否有人可以在sqltransaction
內使用datareader
s有解決方案?在sqltransactions中使用數據採集器
回答
如果調用ExecuteReader
時設置了CommandBehavior.CloseConnection
選項,DataReader將只關閉連接。
如果您避免設置此選項,您應該可以。
您應該自己打開SqlConnection。
using(SqlConnection cn = GetConnection())
{
cn.Open();
SqlTransaction tr = cn.BeginTransaction("myTransaction");
.....
SqlCommand command = new SqlCommand(sqlString, cn);
using(SqlDataReader reader = command.ExecuteReader())
{
.....
}
SqlCommand command1 = new SqlCommand(sqlString1, cn);
using(SqlDataReader reader1 = command1.ExecuteReader())
{
.....
}
tr.Commit();
}
你好,我不斷收到這些錯誤說,已經有一個開放的DataReader與這個命令相關聯,必須先關閉它。這可能是什麼解決方案 – user1308182 2012-07-12 14:52:00
嘗試將每個數據讀取器封裝在'using'語句中。這將保證對DataReader的Close和Dispose的調用。 – Steve 2012-07-12 14:55:13
這很好...我有很多使用的數據採集器> 100 ...有沒有什麼辦法可以在執行下一個讀取器之前打開連接上的datareazader? – user1308182 2012-07-12 15:11:28
- 1. 使用Python進行數據採集
- 2. 在Hadoop中從DocumentDB中採集數據
- 3. ADK數據採集
- 4. 如何使用C++從圖像採集卡中進行數據採集
- 5. 什麼是數據採集器和數據採集系統/軟件使用的流行/良好文件格式?
- 6. 我遇到了數據採集器
- 7. PHP移動數據採集器
- 8. 使用Python在Arduino中觸發數據採集
- 9. 使用Jmeter OS過程採樣器收集腳本數據
- 10. 無法使用數據採集器讀取下一條記錄
- 11. 學習數據採集
- 12. 長期數據採集
- 13. C#mongoDB數據採集
- 14. Android數據採集表
- 15. MetroEEG數據採集率
- 16. Emotiv Epoc數據採集
- 17. 使用php Ajax發佈數據採集數據
- 18. 堅持/更新數據採集到數據庫使用休眠
- 19. 爲我的數據採集集合
- 20. 使用定時器/任務/後臺工作器的數據採集循環
- 21. 用於採集傳感器數據分析的軟件
- 22. 從Tektronix示波器中採集超過10,000個數據點?
- 23. 在Android中實現人物採集器
- 24. .NET的BackgroundWorker和SQLTransactions
- 25. 使用主幹採集
- 26. 使用回調和持續變量在MATLAB中連續採集數據
- 27. 如何使用數據採集器將scope_identity值存儲到變量
- 28. 如何在R中的數據集中過採樣實例
- 29. 使用pyspark/spark採樣大型分佈式數據集
- 30. 如何更新採集數據並使用Backbone Marionette渲染
ü可以附加一些代碼:當你關閉DataReader
例如
SqlDataReader中不關閉SqlConnection? – Tamir 2012-07-12 14:00:38