错误信息:
ORA-00933: SQL 命令未正确结束UPDATE Authors SET train = ? unit = ?,date = ?,overdate = ?,result = ?, re = ?, train = ?, form = ?,noteform = ?,fee = ? where numb = ?

解决方案 »

  1.   

    我用的是:oledbCommand因为oracle是 8.1.6+winnt+sp6
      

  2.   

    使用oracleCleint吧oracle下的SQL应该是 UPDATE Authors SET train = :para1 ....
    应该以 :开始
      

  3.   

    给一段给你看看,试试:
    sql="update tworderlist set sheetno=?sheetno,countnum=?countnum,price=?price,sumfee=?sumfee," +
    " providerid=?providerid,re=?re where sheetno=?sheetnoold and productid=?productid "+
    " and price=?oldprice and re=?oldre ";
    cmd.CommandText=sql;
    cmd.Parameters.Add("?sheetno",OleDbType.VarChar,20);
    cmd.Parameters.Add("?countnum",OleDbType.Numeric);
    cmd.Parameters.Add("?price",OleDbType.Numeric);
    cmd.Parameters.Add("?sumfee",OleDbType.Numeric);
    cmd.Parameters.Add("?providerid",OleDbType.Numeric );
    cmd.Parameters.Add("?re",OleDbType.VarChar,255);
    cmd.Parameters.Add("?sheetnoold",OleDbType.VarChar,20);
    cmd.Parameters.Add("?productid",OleDbType.Numeric);
    cmd.Parameters.Add("?oldprice",OleDbType.Numeric);
    cmd.Parameters.Add("?oldre",OleDbType.VarChar,255); cmd.Parameters["?sheetno"].Value=TextBox1.Text.Trim(); //送货单编号
    cmd.Parameters["?countnum"].Value=num.ToString("f4"); //数量
    cmd.Parameters["?price"].Value=price.ToString("f4"); //单价
    cmd.Parameters["?sumfee"].Value=total.ToString("f4"); //金额
    cmd.Parameters["?providerid"].Value=drpgys.SelectedValue.ToString(); //供应商编号
    cmd.Parameters["?re"].Value=dss.Tables[0].Rows[i]["re"].ToString(); //备注(新加)
    cmd.Parameters["?sheetnoold"].Value=(string)ViewState["sheetnoshi"]; //供货单编号
    cmd.Parameters["?productid"].Value= DataGrid1.Items[i].Cells[0].Text; //产品ID
    cmd.Parameters["?oldprice"].Value=((DataSet)ViewState["wfold"]).Tables[0].Rows[i]["price"].ToString();//修改前单价
    cmd.Parameters["?oldre"].Value=((DataSet)ViewState["wfold"]).Tables[0].Rows[i]["re"].ToString();//修改前备注
    iRow= cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
      

  4.   

    我上面的是OLE的/
    如果是Oracle的就把?改成:就可以了