相关的代码节选如下,个人感觉问题出在红色的部分。指针定义,数据连结都没有问题。把红色部分的代码改为insert就没错。非常奇怪,不知道是不是自己的格式写得有问题。错误提示:非法的变量名/编号 :
 OracleCommand cmd = new OracleCommand();            OracleParameter pFIRST_NAME = new OracleParameter();
            pFIRST_NAME.OracleDbType = OracleDbType.Varchar2;
            pFIRST_NAME.Value = textBox2.Text;            cmd.Connection = conn;            cmd.Parameters.Add(pFIRST_NAME);
    try
           {               cmd.CommandText = "update EMPLOYEES_HY_216 set (FIRST_NAME) =:pFIRST_NAME  where EMPLOYEE_id = " + comboBox1.Text;                
               
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
   }
            catch (Exception ex)
            {
                MessageBox.Show("数据更新发生了如下错误:" + ex.Message);
            }
            finally
          {
                MessageBox.Show("处理完毕!");
                cmd.Dispose();
            }

解决方案 »

  1.   

    楼主给参数加个名称试试

    OracleParameter pFIRST_NAME = new OracleParameter();
    改成
    OracleParameter pFIRST_NAME = new OracleParameter("pFIRST_NAME",OracleDbType.Varchar2);
    试试,
    下面一行pFIRST_NAME.OracleDbType = OracleDbType.Varchar2;就不需要了
      

  2.   

    FIRST_NAME) =:pFIRST_NAME OracleParameter pFIRST_NAME = new OracleParameter();
      pFIRST_NAME.OracleDbType = OracleDbType.Varchar2;
      pFIRST_NAME.Value = textBox2.Text;这是参数吧,怎么没有设置值 ?
    怎么不设置名称,不设置名称它怎么给你替换呢?
    为何混合 传入参数?
    用一种就可以了。
      

  3.   

    还有,楼主你这个EMPLOYEE_id是numeric类型还是varchar类型
    如果是varchar类型,加单引号界定试试
      

  4.   

    谢谢各位高人~我改成改成
    OracleParameter pFIRST_NAME = new OracleParameter("pFIRST_NAME",OracleDbType.Varchar2);
    就可以了~