public int addsellhouse(TextBox txb_companyname,ComboBox cbx_housetype,TextBox txb_price,TextBox txb_area,TextBox txb_floor,TextBox txb_buildyear,TextBox txb_ownername,TextBox txb_ownerphone,TextBox txb_address,TextBox txb_re)
        {
            connection.Open();
            int a=0;
            int intresult;
            try
            {
                OracleCommand command = new OracleCommand("addsellhouse", connection);                OracleParameter sellhouseid = new OracleParameter("sellhouseid2", OracleType.Number);
                OracleParameter companyname = new OracleParameter("companyname2", OracleType.VarChar, 40);
                OracleParameter address = new OracleParameter("address2", OracleType.VarChar, 100);
                OracleParameter housetype = new OracleParameter("housetype2", OracleType.VarChar, 20);
                OracleParameter price = new OracleParameter("price2", OracleType.Number);
                OracleParameter area = new OracleParameter("area2", OracleType.Number);
                OracleParameter floor = new OracleParameter("floor2", OracleType.Number);
                OracleParameter buildyear = new OracleParameter("buildyear2", OracleType.VarChar, 20);
                OracleParameter ownername = new OracleParameter("ownername2", OracleType.VarChar, 15);
                OracleParameter ownerphone = new OracleParameter("ownerphone2", OracleType.VarChar, 20);
                OracleParameter re = new OracleParameter("re2", OracleType.VarChar, 200);
                OracleParameter result = new OracleParameter("rt", OracleType.Number);
                result.Direction = ParameterDirection.Output;                command.Parameters.Add(sellhouseid);
                command.Parameters.Add(companyname);
                command.Parameters.Add(address);
                command.Parameters.Add(housetype);
                command.Parameters.Add(price);
                command.Parameters.Add(area);
                command.Parameters.Add(floor);
                command.Parameters.Add(buildyear);
                command.Parameters.Add(ownername);
                command.Parameters.Add(re);
                command.Parameters.Add(result);                OracleCommand mycom = new OracleCommand();
                mycom.Connection = connection;
                OracleDataAdapter adapter = new OracleDataAdapter("SELECT sellhouseid FROM t_sellhouse", connection);
                DataSet ds = new DataSet();
                adapter.Fill(ds, "t_sellhouseid");
                intresult = ds.Tables["t_sellhouseid"].Rows.Count;
                //intresult = Convert.ToInt32(mycom.ExecuteOracleScalar());
                //if (intresult == 0)
                //{ intresult = 1001; }                sellhouseid.Value = 02;
                companyname.Value = txb_companyname.Text.Trim().ToString();
                address.Value = txb_address.Text.Trim().ToString();
                housetype.Value = cbx_housetype.Text.Trim().ToString();
                price.Value = Convert.ToDouble(txb_price.Text.Trim());
                area.Value = Convert.ToDouble(txb_area.Text.Trim());
                floor.Value = Convert.ToInt32(txb_floor.Text.Trim());
                buildyear.Value = txb_buildyear.Text.Trim().ToString();
                ownername.Value = txb_ownername.Text.Trim().ToString();
                ownerphone.Value = txb_ownerphone.Text.Trim().ToString();
                re.Value = txb_re.Text.Trim().ToString();
                command.ExecuteNonQuery();                a = Convert.ToInt32(command.Parameters["rt"].Value);
                            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                connection.Close();
            }
            return a;
        }
调试,提示了错误非法的变量名/编号,请问怎么解决?谢谢各位了

解决方案 »

  1.   

    补充一句,上面一句话写错了:sellhouseid.Value =intresult ;
    oralce中写的存储过程,参数顺序跟上面是一致的。
      

  2.   

    您说的参数名或者字段名是指什么呢?是 command.Parameters.Add(sellhouseid);这个oracleparameter参数吗?
    不好意思,我很菜
      

  3.   

    就是你代码里棕色的那些,有拼写错误...那些是你在oracle里定义的,提示也是oracle的,错误和.NET无关...
      

  4.   

    对了,大小写...oracle是大小写敏感的,而且默认以及一般都是用大写的,那你小写就全是错的...
      

  5.   

    我在oracle中写存储过程的时候参数都申明为小写的。。应该不是这个错误吧,之前我也这样写过这个功能代码。
      

  6.   

    int intresult;没有初始化赋值啊!!!!!
      

  7.   

     command.ExecuteNonQuery();在这一行报错的
      

  8.   

    你所谓的小写oracle不认的,只有"号括起来的小写才是小写,否则统统都转换为大写...先去好好学学oracle基础知识再说吧,编程不是会一种语言就叫编程的...
      

  9.   

    ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是创建表,那么在表创建成功后该方法返回 –1。
    你说command.ExecuteNonQuery();报错,那肯定是sql语句出的错.
    跟这代码应该没关系.
    oracle 在创建的时候如果沒加引号,默认全倍编译成大写,oracle编译器本身能把小写转成大写.
    但其他的工具很难说
      

  10.   

    谢谢
    SQL语句出错,就是说存储过程写错了吗?我在PL/SQL里调用了存储过程,可以执行,执行后数据库有相应的记录。
      

  11.   

    进入调试模式,在即时窗口里查看一下执行的sql语句是什么?
    然后复制到pl/sql里看看能不能执行成功