2

このスクリプトを使用して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 で実行すると、EXECUTENONQUERY でエラー ORA-01036 が発生します。

誰かが私に何が起こっているのか教えてもらえますか?

皆様、ありがとうございます。約 1 時間格闘しましたが、今では解決策を見つけました。オラクル コマンドをステートメントで既に使用しているときにパブリックとして宣言した場合は、それを破棄する必要があることに注意してください。以前のステートメント キャッシュには残されなくなります。神は皆を祝福します

4

2 に答える 2

0

cmd.Parameters.Add(":KODE", "AN001") を cmd.Parameters.Add("KODE", "AN001") に変更してみてください

于 2012-05-30T19:10:22.273 に答える
0

Microsoft の を使用してOracleClientいる場合は、コロンを使用する必要はありませんParameters.Add

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

ドキュメントから:

の場合OracleSQLステートメントまたはストアド プロシージャで名前付きパラメータを使用する場合は、パラメータ名の前にコロン ( :) を付ける必要があります。ただし、コード内の別の場所で名前付きパラメータを参照する場合 (たとえば、 を呼び出す場合Add)、名前付きパラメータの前にコロン ( :) を付けないでください。は.NET Framework Data Provider for Oracleコロンを自動的に供給します。

アップデート:

使用する

cmd.Parameters.AddWithValue("KODE", "AN001")
于 2012-05-30T19:11:26.533 に答える