在 ASP.NET 中插入时缺少 SELECT 关键字

Nic*_*las 3 c# asp.net oracle odp.net visual-studio-2010

我对这个错误完全视而不见。我更像是一个 Java 人而不是一个 ASP 人。所以这是我的代码和我的问题:

这是我产生错误的代码:

protected void ButtonOk_Click(object sender, EventArgs e)
    {
       // OracleConnection connect = new OracleConnection();
       // connect.ConnectionString = ConfigurationManager.ConnectionStrings["Absensi2.Properties.Settings.Setting"].ConnectionString;
       //// SqlConnection connect = new SqlConnection(getConnection());
        var sql = "insert into master_dosen('NIP','NAMA_DOSEN','KETERANGAN') values (:NIP, :NAMA_DOSEN, :KETERANGAN)";

        using (OracleConnection c = new OracleConnection(ConfigurationManager.ConnectionStrings["Absensi2.Properties.Settings.Setting"].ConnectionString))
        {
            c.Open();
            using (OracleCommand cmd = new OracleCommand(sql, c))
            {
                cmd.Parameters.Add(":NIP", TextBoxNIP.Text);
                cmd.Parameters.Add(":NAMA_DOSEN", TextBoxNamaDosen.Text);
                cmd.Parameters.Add(":KETERANGAN", TextBoxKeterangan.Text);

                cmd.ExecuteNonQuery();
                GridView1.DataBind();
            }
            c.Close();
        }
Run Code Online (Sandbox Code Playgroud)

错误是:ORA-00928: 在 cmd.ExecuteNonQuery(); 行中缺少 SELECT 关键字;

缺少选择

我已经搜索过了,它说已弃用。这是真的吗?

注意:我使用的是 ODP.NET,我使用的是 Visual Studio 2010。

Joh*_*Woo 5

您的查询的问题在于您使用单引号将列名包装起来,这使它们成为字符串文字。

要解决此问题,只需删除列名周围的单引号:

var sql = "insert into master_dosen(NIP,NAMA_DOSEN,KETERANGAN) ...";
Run Code Online (Sandbox Code Playgroud)