主题:【求助】C#在Oracle中修改数据的问题
最近在开发当中碰见这样的问题,在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();
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();