2012-02-02 121 views
0

我正在嘗試更新下面給出的修改後的數據集。我收到錯誤。我該如何糾正這個問題?DataSet更新失敗

在System.Data.dll中發生未處理的System.InvalidOperationException類型異常 附加信息:更新無法找到TableMapping ['Table']或DataTable'Table'。

string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\ASWorx Products\\ASWorx200\\Database\\GemDatabase.mdb"; 
string strAccessSelect = "SELECT * FROM VariableTable"; 

// Create the dataset and add the Categories table to it: 
DataSet myDataSet = new DataSet(); 
OleDbConnection myAccessConn = new OleDbConnection(strAccessConn);    
OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn); 
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand); 
myAccessConn.Open(); 
myDataAdapter.Fill(myDataSet, "VariableTable"); 

DataRowCollection dra = myDataSet.Tables["VariableTable"].Rows; 
foreach (DataRow dr in dra) 
{ 
    dr[1] = "SV"; 
    break; 
} 
myDataAdapter.Update(myDataSet); 
+1

*更新用*?真? – 2012-02-02 03:52:50

回答

2

您需要使用OleDbCommandBuilder對象 - 它產生的單表命令。

OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn); 
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand); 
OleDbCommandBuilder cmd=new OleDbCommandBuilder(myDataAdapter); 

myDataAdapter.Fill(myDataSet, "VariableTable"); 
.. 

要uDate公司數據集的結果,

myDataAdapter.Update(myDataSet,"VariableTable"); 
+0

我收到錯誤'UpdateCommand的動態SQL生成不支持不返回任何鍵列信息的SelectCommand' – Manu 2012-02-02 04:44:35

+0

設置/添加主鍵到VariableTable表。 – adatapost 2012-02-02 04:45:18