通过asp.net将参数插入Oracle数据库
我正在用Oracle数据库开发一个ASP.net应用程序。当我尝试将数据插入表寄存器时,它抛出一个异常,如下所示通过asp.net将参数插入Oracle数据库,asp.net,oracle,stored-procedures,Asp.net,Oracle,Stored Procedures,我正在用Oracle数据库开发一个ASP.net应用程序。当我尝试将数据插入表寄存器时,它抛出一个异常,如下所示 ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'INSERTREGISTER' ORA-06550: line 1, column 7: PL/SQL: Statement ignored 表REGISTER将用户名、密码、电子邮件列为 存储过程INSERT
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'INSERTREGISTER'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
表REGISTER将用户名、密码、电子邮件列为
存储过程INSERTREGISTER如下所示
create or replace
PROCEDURE INSERTREGISTER IS
u1 varchar2(20);
p1 varchar2(20);
e1 varchar2(20);
BEGIN
INSERT INTO REGISTER (USERNAME, PASSWORD, EMAIL) VALUES (u1, p1, e1);
END INSERTREGISTER;
我的c#代码是:
public int Insert(string u1, string p1, string e1)
{
try
{
OracleCommand cmd = new OracleCommand("INSERTREGISTER", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("u1", OracleType.VarChar)).Value = u1;
cmd.Parameters.Add(new OracleParameter("p1", OracleType.VarChar)).Value = p1;
cmd.Parameters.Add(new OracleParameter("e1", OracleType.VarChar)).Value = e1;
conn.Open();
cmd.ExecuteNonQuery();
return cmd.ExecuteNonQuery();
}
请帮帮我
问候,,
Arjun将您的程序更改为
create or replace
PROCEDURE INSERTREGISTER (u1 varchar2,p1 varchar2,e1 varchar2) AS
BEGIN
--your sql statement
END
不需要varchar2的长度
(20)
,只要:过程插入寄存器(u1 varchar2,p1 varchar2,e1 varchar2)作为开始…
@A.B.Cade:谢谢!!!!!!错误消失了,但数据在表中插入了两次。这是因为您正在运行cmd.ExecuteNonQuery()
两次-一次作为调用,一次在return cmd.ExecuteNonQuery()
@a.B.Cade:我应该在return语句中添加什么?@arjunbab-您可以保持原样,但可以删除第一个调用:conn.Open(); 返回cmd.ExecuteNonQuery()代码>。顺便说一句,在finally
范围中确实有一个conn.close(),对吗?