http://expert.csdn.net/Expert/topic/1385/1385068.xml?temp=.5992853 saucer 说过 do not use "@" for OleDbprivate void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string StrCon=ConfigurationSettings.AppSettings["ConOraString"]; MyConn=new OleDbConnection(StrCon); string strupdate="update list set name=? and xj05=? and counter=? where xj01=?"; MyConn.Open(); OleDbCommand updatecmd=new OleDbCommand(strupdate,MyConn); updatecmd.Parameters.Add(new OleDbParameter("name",OleDbType.VarChar,20)); updatecmd.Parameters.Add(new OleDbParameter("xj05",OleDbType.VarChar,20)); updatecmd.Parameters.Add(new OleDbParameter("counter",OleDbType.VarChar,50)); updatecmd.Parameters.Add(new OleDbParameter("xj01",OleDbType.VarChar,20)); .................
saucer 说过
do not use "@" for OleDbprivate void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ string StrCon=ConfigurationSettings.AppSettings["ConOraString"];
MyConn=new OleDbConnection(StrCon);
string strupdate="update list set name=? and xj05=? and counter=? where xj01=?";
MyConn.Open();
OleDbCommand updatecmd=new OleDbCommand(strupdate,MyConn);
updatecmd.Parameters.Add(new OleDbParameter("name",OleDbType.VarChar,20));
updatecmd.Parameters.Add(new OleDbParameter("xj05",OleDbType.VarChar,20));
updatecmd.Parameters.Add(new OleDbParameter("counter",OleDbType.VarChar,50));
updatecmd.Parameters.Add(new OleDbParameter("xj01",OleDbType.VarChar,20));
.................
异常详细信息: System.Data.OleDb.OleDbException: 在执行命令过程中,发生了一个或多个错误。 ORA-00936: missing expression
字段名肯定不会错的。
我把Cmd1.Parameters["@seqno"].Value=seq;
改为Cmd1.Parameters["@seqno"].Value=435;
错误依然。
Cmd1.CommandText="insert into AAA(ZD1) values(@seqno)";
Cmd1.Parameters.Add(new OleDbParameter("seqno",OleDbType.Integer));
Cmd1.Parameters["seqno"].Value=435;
我试了,必须把所有参数用?方式才行!我也知道这个方式,没用过,因为在ACESS表中,我用@方式一直好使,包括在ORACLE 里,对字符类型的也好使。微软真TMD破烦!!!
谢谢你了!两个人商量着就是好!!!
加分!