我已經從互聯網上覆制了一些代碼並對其進行了修改我瞭解它在做什麼,但是我無法將它正確地插入到數據庫中。如果我輸入「變量的名稱」,我似乎無法從字面上得到任何其他值,但這就是我從另一端得到的結果。一旦我完成這個工作,就完成了。將值插入到數據庫中會帶來錯誤的值
我得到的錯誤是數據庫打開或者/ insert insert執行命令行號上的變量有問題。
private void button9_Click(object sender, EventArgs e)
{
try
{
string ConnString = (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\temp\\names.accdb;Persist Security Info=False");
using (OleDbConnection Conn = new OleDbConnection(ConnString))
{
Conn.Close();//severl times connection has been open
Conn.Open();
DataSet ds = new DataSet();
ds.ReadXml(@"c:\\temp\\my123.xml");
OleDbCommand cmd = new OleDbCommand();
OleDbCommand cmd1 = new OleDbCommand();
DataTable dtCSV = new DataTable();
dtCSV = ds.Tables[0];
cmd.Connection = Conn;
cmd.CommandType = CommandType.Text;
cmd1.Connection = Conn;
cmd1.CommandType = CommandType.Text;
Conn.Open();
for (int row = 0; row <= dtCSV.Rows.Count - 1; row++)
{
for (int col = 1; col <= dtCSV.Columns.Count - 1; col++)
{
cmd.CommandText= ("INSERT INTO tab1 (field1, field2) VALUES (dtCSV.Rows ,dtCSV.Columns)");
cmd.ExecuteNonQuery();
}
}
Conn.Close();
}
}
catch (Exception ex)
{
richTextBox1.Text = richTextBox1.Text + "\n Error " + ex + "\n"; ;
}
}
錯誤System.InvalidOperationException:連接不 關閉。連接的當前狀態已打開。在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的, TaskCompletionSource`1重試,DbConnectionOptions USEROPTIONS)在 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的)在 系統.Data.OleDb.OleDbConnection.Open()在 WindowsFormsApp5.Form1.button9_Click(對象發件人,EventArgs的)
當您在Connection中使用using語句時,當您從using塊中退出時,該連接實例會自動關閉。你不需要關閉第二個按鈕中的任何東西點擊 – Steve
@Steve即使在重新啓動後,我仍然無法理解數據庫仍然處於打開狀態@C珀金斯能幫忙 – Data
你是什麼意思_database仍然是open_?你在using塊內創建一個連接。只有在您打開Open之後,該連接纔會打開。所以沒有conn.關閉作爲使用塊內的第一行,並且你不需要conn.Close在最後,因爲當達到結束大括號時,using塊關閉並處理連接。 – Steve