2012-11-27 49 views
0

這是我的代碼:爲什麼我在更新我的訪問數據庫時出現此錯誤?

oledbcm = new OleDbCommandBuilder(oleDbDataAdabter); 

DataRow dataRow = myDataset.Tables["salam"].NewRow(); 

dataRow[1] = textBox2.Text; 
dataRow[2] = textBox3.Text; 
dataRow[3] = textBox4.Text; 
dataRow[4] = textBox5.Text; 

myDataset.Tables["salam"].Rows.Add(dataRow); 

oleDbDataAdabter.Update(myDataset , "salam"); 

,當我運行它,它使這個錯誤:

InvalidOperationException異常是未處理的;

ConnectionString屬性尚未初始化。

+0

這個錯誤發生在更新行中!?!?!? –

+1

你可以發佈例外詳情嗎? –

+2

您是否在您的'OleDbCommandBuilder'中指定了連接字符串? –

回答

1

如果這就是你比你忘了創建和打開OleDbConnection。有關如何使用它的詳細信息和示例,請參閱OleDbConnection documentation page

總之,你必須使用它的方式如下:

using (OleDbConnection conn = new OleDbConnection(conectionString)) { 
    //Your code here. 
} 

對於這個工作,你需要一個有效的連接字符串。這取決於您使用的提供程序,因此請參閱documentation以確定數據源的有效連接字符串格式。

0

您需要使用連接字符串指定OleDbConnection

string connectionString = 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;" 
    + "User Id=admin;Password=password;"; 
using (OleDbConnection connection = new OleDbConnection(connectionString)) 
{ 
    OleDbDataAdapter adapter = new OleDbDataAdapter(); 
    adapter.SelectCommand = new OleDbCommand("SELECT * FROM MyTable", connection); 
    OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter); 

    connection.Open(); 

    DataRow dataRow = myDataset.Tables["salam"].NewRow(); 

    dataRow[1] = textBox2.Text; 
    dataRow[2] = textBox3.Text; 
    dataRow[3] = textBox4.Text; 
    dataRow[4] = textBox5.Text; 

    myDataset.Tables["salam"].Rows.Add(dataRow); 

    oleDbDataAdabter.Update(myDataset , "salam"); 
} 
+0

我很抱歉延時。我改變了我的代碼。 但它會產生新的錯誤。 這是錯誤:OleDbException未處理。 INSERT INTO語句中的語法錯誤。 我該怎麼辦? –

相關問題