最近在开发当中碰见这样的问题,在DataSet中修改数据后用OleDBDataAdapter更新的时候出现“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”这样的错误。项目数据库中每个表都有主键。而且连Access就没有这样的问题,还有在DataSet中添加新数据和删除数据也不会出现这样的问题。下面是我写的存在这样问题的试例代码,请高手们看一下该无何修改。
string sConStr ;
string sSql=string.Empty; 
OleDbConnection myConn = new OleDbConnection();
sConStr= "Provider=oraOleDB.Oracle;";
sConStr += "Data Source =CLPJ;User Id =CLPJ;Password=CLPJ;" ;
myConn.ConnectionString = sConStr ;
sSql="select * from test";

OleDbConnection myConn = new OleDbConnection(myConnection);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
myDataAdapter.SelectCommand = new OleDbCommand(sSql, myConn);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);
myConn.Open() ;

DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS,"t1");

//code to modify data in dataset here
custDS.Tables["t1"].Rows[0][0]="qwer" ; 

//Without the OleDbCommandBuilder this line would fail
myDataAdapter.Update(custDS,"t1");
myConn.Close();
custDS.Dispose(); 
myDataAdapter.Dispose(); 
custCB.Dispose();