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;
}
调试,提示了错误非法的变量名/编号,请问怎么解决?谢谢各位了
oralce中写的存储过程,参数顺序跟上面是一致的。
不好意思,我很菜
你说command.ExecuteNonQuery();报错,那肯定是sql语句出的错.
跟这代码应该没关系.
oracle 在创建的时候如果沒加引号,默认全倍编译成大写,oracle编译器本身能把小写转成大写.
但其他的工具很难说
SQL语句出错,就是说存储过程写错了吗?我在PL/SQL里调用了存储过程,可以执行,执行后数据库有相应的记录。
然后复制到pl/sql里看看能不能执行成功