2012-03-06 2 views
0

Я разрабатываю приложение ASP.net с базой данных Oracle. При попытке вставить данные в таблицу REGISTER, он бросает исключение, как показано нижеВставка параметров в базу данных 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 имеет USERNAME, PASSWORD, EMAIL как столбцы

магазин процедура 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; 

my 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 ошибки !! –

+2

нет необходимости в длине varchar2 '(20)', просто: 'ПРОЦЕДУРА INSERTREGISTER (u1 varchar2, p1 varchar2, e1 varchar2) AS BEGIN ...' –

+0

@ A.B.Cade: Спасибо !!!!!! Ошибки исчезли, но данные вставляются дважды в таблицу. –