2012-10-18 62 views
0

我有一個VB.NET應用程序,作爲此函數的一部分寫入到oracle數據庫。當我啓動應用程序時,這些工作在一次迭代中完全正常,但是,在應用程序仍然打開的情況下,如果我嘗試再次寫入數據庫,則會出現以下錯誤。多次插入表時出錯

ORA-06550: line 1, column 7: 
PLS-00306: wrong number or types of arguments in call to 'INSERTINTORACOSENT' 
ORA-06550: line 1, column 7: 
PL/SQL: Statement ignored 

和我的Oracle SQL過程

create or replace 
PROCEDURE  insertintoracosent(
    p_phone   IN RACOSENT.PHONE%TYPE, 
    p_msg    IN RACOSENT.MESSAGE%TYPE) 
IS 
BEGIN 
    INSERT INTO racosent 
    VALUES (seq_sent.nextval, p_phone, p_msg, sysdate); 
END; 

我的VB.NET代碼

Sub orclSendSMS(ByRef cbManNum As String, ByRef cbManMsg As String) 
    If orcl.State = ConnectionState.Closed Then orcl.Open() 
    myCMD.Connection = orcl 
    myCMD.CommandText = "insertintoracosent" 
    myCMD.CommandType = CommandType.StoredProcedure 
    Dim num As OracleParameter = New OracleParameter("p_phone", OracleDbType.Int64, ParameterDirection.Input) 
    Dim msg As OracleParameter = New OracleParameter("p_msg", OracleDbType.Varchar2, ParameterDirection.Input) 
    num.Value = Convert.ToInt64(cbManNum) 
    msg.Value = cbManMsg 
    myCMD.Parameters.Add(num) 
    myCMD.Parameters.Add(msg) 
    Try 
     myCMD.ExecuteNonQuery() 
    Catch ex As Exception 
     MsgBox(ex.ToString) 
     Exit Sub 
    End Try 
End Sub 
+2

和你vb.net的代碼是什麼? –

+0

不知道它是需要的,但自從添加它之後。 – GoodBoyNYC

回答

2

它看起來像你可能不會重新初始化myCMD?那麼參數集合中的參數數量每次增加兩次?

嘗試做一個myCMD.Parameters.Count

+0

謝謝。我還是OracleDataAccess的新手,不確定發生了什麼問題。 – GoodBoyNYC