2012-03-06 85 views
0

我正在開發一個帶有Oracle數據庫的ASP.net應用程序。當我嘗試將數據插入到表寄存器,它拋出一個異常,如下通過asp.net插入參數到Oracle數據庫

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(); 

     } 

請幫我

問候, 阿瓊

回答

1

更改過程

create or replace 
PROCEDURE INSERTREGISTER (u1 varchar2,p1 varchar2,e1 varchar2) AS 
BEGIN 
--your sql statement 
END 
+0

我照你說的已經編輯,但拋出3個錯誤! – 2012-03-06 14:44:47

+2

不需要varchar2'(20)'的長度,只需要:'PROCEDURE INSERTREGISTER(u1 varchar2,p1 varchar2,e1 varchar2)AS BEGIN ...' – 2012-03-06 14:45:38

+0

@ A.B.Cade:謝謝!!!!!!錯誤消失了,但數據在表格中插入了兩次。 – 2012-03-06 15:00:00

相關問題