protected void Button1_Click(object sender, EventArgs e)
{
string id = this.TextBox1.Text.Trim();
string name = this.TextBox2.Text.Trim();
string pwd = this.TextBox3.Text.Trim();
string sex = this.TextBox4.Text.Trim();
string strCn = "data source=zon;uid=system;pwd=pank;";
OracleConnection cn = new OracleConnection (strCn);
OracleCommand cmd = new OracleCommand("insaaa",cn);
cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter("v_id", OracleType.Int32);
p1.Direction = ParameterDirection.Input;
p1.Value = id; OracleParameter p2 = new OracleParameter("v_name",OracleType.VarChar,10);
p2.Direction = ParameterDirection.Input;
p2.Value = name; OracleParameter p3 = new OracleParameter("v_pwd",OracleType.VarChar,20);
p3.Direction = ParameterDirection.Input;
p3.Value = pwd; OracleParameter p4 = new OracleParameter("v_sex",OracleType.VarChar,15);
p4.Direction = ParameterDirection.Input;
p4.Value = sex; cn.Open();
int count = cmd.ExecuteNonQuery();
cn.Close();
if (count > 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "", " <script>alert('good!') </script>");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "", " <script>alert('false!') </script>");
}
} 代码如上,
过程如下
create or replace procedure Insaaa
(v_id number,
v_name varchar2 ,
v_pwd varchar2,
v_sex varchar2
)as
begin
insert into aaa values (v_id,v_name,v_pwd,v_sex);
end;
过程没有错误,测试过了,但是程序调用就出错了,不知道为啥,高手指教,不胜感激;
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'INSAAA' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
{
string id = this.TextBox1.Text.Trim();
string name = this.TextBox2.Text.Trim();
string pwd = this.TextBox3.Text.Trim();
string sex = this.TextBox4.Text.Trim();
string strCn = "data source=zon;uid=system;pwd=pank;";
OracleConnection cn = new OracleConnection (strCn);
OracleCommand cmd = new OracleCommand("insaaa",cn);
cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter("v_id", OracleType.Int32);
p1.Direction = ParameterDirection.Input;
p1.Value = id; OracleParameter p2 = new OracleParameter("v_name",OracleType.VarChar,10);
p2.Direction = ParameterDirection.Input;
p2.Value = name; OracleParameter p3 = new OracleParameter("v_pwd",OracleType.VarChar,20);
p3.Direction = ParameterDirection.Input;
p3.Value = pwd; OracleParameter p4 = new OracleParameter("v_sex",OracleType.VarChar,15);
p4.Direction = ParameterDirection.Input;
p4.Value = sex; cn.Open();
int count = cmd.ExecuteNonQuery();
cn.Close();
if (count > 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "", " <script>alert('good!') </script>");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "", " <script>alert('false!') </script>");
}
} 代码如上,
过程如下
create or replace procedure Insaaa
(v_id number,
v_name varchar2 ,
v_pwd varchar2,
v_sex varchar2
)as
begin
insert into aaa values (v_id,v_name,v_pwd,v_sex);
end;
过程没有错误,测试过了,但是程序调用就出错了,不知道为啥,高手指教,不胜感激;
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'INSAAA' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
我也用 oracle+.net 没有直接用过存储过程。要把存储过程写在包里 .net才能调用吧。 packagename.insaaa
我一直都是这么用的。
OracleType.VarChar?
有没有 OracleType.VarChar2啊? 我没试过。
可能是int32有问题,你可以修改一下procedure的参数为int,然后测试一下就知道了。