string insertText = "insert into test values(@id,@name,@sex,@add)";        oracleCommd = new OracleCommand(insertText, oracleConn);        OracleParameter id = new OracleParameter("@id", System.Data.OracleClient.OracleType.Int32);
        id.Value = Convert.ToInt32(this.TextBox1.Text);        OracleParameter name = new OracleParameter("@name", System.Data.OracleClient.OracleType.VarChar);
        name.Value = this.TextBox2.Text;        OracleParameter sex = new OracleParameter("@sex", System.Data.OracleClient.OracleType.VarChar);
        sex.Value = this.TextBox3.Text;        OracleParameter add = new OracleParameter("@add", System.Data.OracleClient.OracleType.VarChar);
        add.Value = this.TextBox4.Text;        oracleCommd.Parameters.Add(id);
        oracleCommd.Parameters.Add(name);
        oracleCommd.Parameters.Add(sex);
        oracleCommd.Parameters.Add(add);        if (oracleConn.State != System.Data.ConnectionState.Open)
            oracleConn.Open();
        try
        {
            oracleCommd.ExecuteNonQuery();
        }
        catch (Exception ee)
        {
            throw new ApplicationException(ee.Message);
        }
        oracleConn.Close();ORA-01036: 非法的变量名/编号说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ApplicationException: ORA-01036: 非法的变量名/编号什么问题
下边的方法也出同样的错        string insertText = "insert into test values(?,?,?,?)";        oracleCommd = new OracleCommand(insertText, oracleConn);        OracleParameter id = new OracleParameter();
        id.OracleType = System.Data.OracleClient.OracleType.Int32;
        id.Value = Convert.ToInt32(this.TextBox1.Text);        OracleParameter name = new OracleParameter();
        name.OracleType = System.Data.OracleClient.OracleType.VarChar;
        name.Value = this.TextBox2.Text;        OracleParameter sex = new OracleParameter();
        sex.OracleType = System.Data.OracleClient.OracleType.VarChar;
        sex.Value = this.TextBox3.Text;        OracleParameter add = new OracleParameter();
        add.OracleType = System.Data.OracleClient.OracleType.VarChar;
        add.Value = this.TextBox4.Text;        oracleCommd.Parameters.Add(id);
        oracleCommd.Parameters.Add(name);
        oracleCommd.Parameters.Add(sex);
        oracleCommd.Parameters.Add(add);        if (oracleConn.State != System.Data.ConnectionState.Open)
            oracleConn.Open();
        try
        {
            oracleCommd.ExecuteNonQuery();
        }
        catch (Exception ee)
        {
            throw new ApplicationException(ee.Message);
        }
        oracleConn.Close();

解决方案 »

  1.   

    OracleParameter id = new OracleParameter(":id",System.Data.OracleClient.OracleType.Int32);
    "@"  --->  ":"
      

  2.   

    "insert into test values(:id,:name,:sex,:add)";OracleParameter id = new OracleParameter(":id",System.Data.OracleClient.OracleType.Int32);这个样子?
      

  3.   

    用OracleConnection 连接串怎么写?
    <add key="conn2" value="Data Source=Oracle;User ID=huasent;Password=huasent"/>  这对不?
      

  4.   

    to:wpy850126() 
    //OracleConnection
    string connectionString = "Data Source=pki;user=scott;password=tiger;";
    OracleConnection connection = new OracleConnection(connectionString);
    connection.Open();