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 小时,现在我得到了解决方案,请注意,如果我们在任何声明中已经使用它时将 Oracle 命令声明为公共,请注意我们必须将其处理掉它将不再保留先前的语句缓存。上帝保佑每个人

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")

文档

对于Oracle,在SQL语句或存储过程中使用命名参数时,必须在参数名称前加上冒号 ( :)。但是,当在代码中的其他地方引用命名参数时(例如,调用 时Add),不要在命名参数前面加上冒号 ( :)。.NET Framework Data Provider for Oracle自动供应冒号。

更新:

采用

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