![](/img/trans.png)
[英]MySQL C# value inserting and connection.open() is not working properly
[英]Why does my C# application still retrieves data from MySql without using connection.Open()
我嘗試使用我的 C# 應用程序從 MySql 上的表中檢索數據。 所以我應用了通常的連接方法,以便將我的 c# 應用程序連接到我的 MySql 數據庫,並調用適當的方法從表中檢索數據,然后將其顯示在我的應用程序上。 但是,我注意到僅使用以下代碼:
conString = "server=localhost;user id=" + user + ";database=db;password="+pass;
connection = new MySqlConnection(conString);
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM users", connection);
adapter.Fill(table);
dataGridView1.DataSource = table;
我可以從表中檢索數據並顯示,而無需使用以下代碼:
connection.Open();
如果我只需要以下代碼來檢索數據,那么使用connection.Open()
的目的是什么? 我什么時候需要使用connection.Open()
?
只有當我從我的應用程序向 mysql 發送信息時才需要使用connection.Open()
但是當我想從 MySql 獲取/檢索信息時我不需要使用connection.Open()
,這是正確的嗎?
由於調用adapter.Fill(table);
的意圖是從數據庫中檢索數據我非常希望Fill
方法打開連接,如果它還沒有。
如果您打算直接對connection
進行操作,而不是通過諸如MySqlDataAdapter
之類的輔助類,則只需要顯式調用Open
。 當然,您可以隨時打開它。
但是,我建議您將連接放在using
語句中,以確保在完成后將其關閉並處理掉:
using (var connection = new MySqlConnection(conString))
{
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM users", connection);
adapter.Fill(table);
dataGridView1.DataSource = table;
}
// Now you are sure the connection is closed and being properly garbage collected
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.