2012-05-30 56 views
2

我一直在嘗試使用這個腳本插入到Oracle表:插入錯誤的Oracle

 Try 
      conn.Close() 
      conn.Open() 
      cmd.CommandText = "INSERT INTO PERSONAL(KODEPERSON) VALUES(:KODE)" 
      cmd.Parameters.Add(":KODE", "AN001") 
      cmd.Connection = conn 
      cmd.ExecuteNonQuery() 
      MessageBox.Show("SUCESS") 
     Catch ex As Exception 
      MessageBox.Show(ex.ToString) 
     End Try 

但我在VB.NET執行這個時候它會引發錯誤ORA-01036在的ExecuteNonQuery

可有人告訴我發生了什麼事?

謝謝大家,我一直在掙扎大約1小時,現在我已經得到了解決方案,請注意,如果我們已經在任何聲明中使用Oracle Command作爲公共聲明時,請注意我們已經爲了處理它,它將不再離開先前的語句緩存。願上帝保佑大家

+0

您正在使用哪個提供商? – Quassnoi

+0

Oracle,Visual Basic,Oracle數據訪問 –

+0

你的意思是'ODP.NET'?你使用哪個類創建'conn'和'cmd'? – Quassnoi

回答

0

嘗試改變 cmd.Parameters.Add( 「:KODE」, 「AN001」) 到 cmd.Parameters.Add( 「KODE」, 「AN001」)

+0

非法變量或數字,仍然通過 –

0

如果您正在使用微軟的OracleClient,你不需要使用Parameters.Add冒號:

cmd.Parameters.Add("KODE", "AN001") 

docs

佛r Oracle,當在SQL語句或存儲過程中使用命名參數時,必須在參數名稱前加冒號(:)。但是,在代碼中的其他位置引用命名參數時(例如,在調用Add時),請不要在命名參數前加冒號(:)。 .NET Framework Data Provider for Oracle自動提供冒號。

更新:

使用

cmd.Parameters.AddWithValue("KODE", "AN001") 
+0

非法變量或數字引起錯誤,仍然通過 –

+0

錯誤提示錯誤我仍然有同樣的問題,不知道爲什麼會這樣。它發生Illegals數字,您是否嘗試過代碼? –

+0

我認爲解決方案是可以的,但我不得不承認我誤解了這一點,我會盡快公佈有關進展情況 –