2
A
回答
4
如果你看一下設計器生成的代碼,你會看到,如果有一個連接,適配器重複使用它,否則它會創建一個新的。在執行查詢方法時,如果連接未打開,該方法將打開它。如果該方法打開它,它會在完成時關閉它。默認情況下,您會爲每個表格適配器獲得一個新連接。
0
啊,TableAdapter的是保持連接打開,如果你面前打開了它,並傳遞給適配器,開放和Closa的適配器,如果你通過關閉的連接,或保留默認conenction
0
你可以做它是這樣的:
using (var MyConnection = new SqlConnection("Connection String Here"))
{
var MyDataAdapter = new SqlDataAdapter("Select * from [stuff]", MyConnection);
MyDataAdapter.Fill(MyDataSet);
}
或
using (var MyConnection = new SqlConnection("Connection String Here"))
{
var MyDataAdapter = new SqlDataAdapter();
var SelectCommand = MyConnection.CreateCommand();
SelectCommand.CommandText = "select * from [stuff]";
MyDataAdapter.SelectCommand = SelectCommand;
MyDataAdapter.Fill(MyDataSet);
}
至於連接壽命,如果沒有打開,它會爲你打開和關閉它。
1
下面是一個典型設計器生成的表適配器的功能的代碼:
根據MSDN,DbDataAdapter.Fill
這樣的表現:
Fill方法使用從數據源中檢索行由關聯的SelectCommand屬性指定的SELECT語句。與SELECT語句關聯的連接對象必須是有效的,但不需要打開。如果連接在調用Fill之前關閉,則會打開它以檢索數據,然後關閉。如果連接在調用Fill之前打開,則它保持打開狀態。
然而,在設計器生成的插入/刪除/更新,代碼應該是這樣的:
global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State;
if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open)
!= global::System.Data.ConnectionState.Open)) {
this.Adapter.InsertCommand.Connection.Open();
}
try {
int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery();
return returnValue;
}
finally {
if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) {
this.Adapter.InsertCommand.Connection.Close();
}
}
0
時會發生什麼
Dim Dt As dataset1.UsersDataTable
With New dataset1TableAdapters.UsersTableAdapter
Dt = .GetData()
End With
連接是否開放?還是關閉?
相關問題
- 1. C#表單生成器的設計
- 2. 如何從資源適配器讀取連接池設置?
- 3. 實現適配器設計模式時的鏈接器錯誤
- 4. 如何將HttpTrigger連接到設計器
- 5. 如何在yii2中設置查詢生成器的連接?
- 6. android連接多個適配器到一個適配器
- 7. 數據庫設計 - 表單生成器
- 8. 如何設計生成Python代碼的代碼生成器
- 9. 生成器設計模式
- 10. 如何通過連接處理程序設置計時器功能?
- 11. 連接器設計模式?
- 12. DAO設計模式和連接處理
- 13. 進步處理器在android系統列表基礎適配器
- 14. zend framework2 Shibboleth適配器 - 如何設置適配器
- 15. 從自定義列表適配器生成微調器
- 16. 生成鏈接設置器
- 17. 計時器不適配器
- 18. 如何通過C預處理器(cpp)生成列表?
- 19. 如何在報表生成器中處理&符號編碼?
- 20. 如何設計扭曲的工廠來處理斷開連接?
- 21. javax.servlet.ServletException:處理程序沒有適配器
- 22. Ember - JSON API適配器錯誤處理
- 23. 網絡適配器批處理標識
- 24. 從適配器處理錯誤
- 25. 連接管理器的表達式生成器不顯示變量
- 26. 如何修改由ember-data的REST適配器生成的url?
- 27. Spring集成JMS適配器連接Jboss中的Topic
- 28. NHibernate和hilo生成器:如何設計關鍵表?
- 29. 檢測物理斷開連接的USB串行適配器
- 30. 修改Visual Studio的表單設計器代碼生成器
我認爲他在談論設計器生成的表適配器,而不是SqlDataAdapters。 – tvanfosson 2009-06-05 15:27:21
呸,我沒有從這個問題,但所選擇的答案,看來你是對的。 – JasonRShaver 2009-06-05 16:08:43