我正在創建一個應用程序,在此連接到Access數據庫並執行多個更新。由於我不是數據庫程序員,這也是一種學習體驗。我在網上找到了下面的代碼,但是直到我添加了connection.open()
這一行後,它才起作用。爲什麼我需要在使用塊內使用odbcconnection.open
所以這是我的問題。我認爲,就像在其他使用情況下創建文件一樣,它會自動打開連接,然後在最後的}
處置。爲什麼在創建一個新連接之後,我必須明確地調用open命令?
private static void GetAllTableAndColumnNames(string connectionString)
{
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
connection.Open();
DataTable tables = connection.GetSchema("Tables");
DataTable columns = connection.GetSchema("Columns");
foreach (DataRow row in columns.Rows)
{
Console.WriteLine(row["COLUMN_NAME"].ToString());
Console.WriteLine(row["TABLE_NAME"].ToString());
}
Console.Read();
}
}
這是我在運行時得到的錯誤,沒有打開命令。
在System.Data.dll中發生未處理的System.InvalidOperationException類型的異常 其他信息:無效的操作。連接已關閉。
http://stackoverflow.com/questions/4717789/in-a-using-block-is-a-sqlconnection-closed-on-return-or-exception –