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

3

我对这个错误毫无头绪。虽然我更倾向于使用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();
        }

错误信息是: ORA-00928: 缺少SELECT关键词 在cmd.ExecuteNonQuery();代码行处。 Missing SELECT 我已经搜索过了,结果显示这个方法已经被废弃了,这是真的吗?
注:我正在使用ODP.NET,并且我正在使用Visual Studio 2010。

2
列名不应该用单引号。 - Deepak Sharma
1
单引号只适用于MySQL,所以请移除单引号。 - Anant Dabhi
2个回答

5
你的查询存在问题,原因是你在字段名称外加了单引号,这会将其变为字符串字面量。
要解决这个问题,只需删除字段名称外的单引号即可:
var sql = "insert into master_dosen(NIP,NAMA_DOSEN,KETERANGAN) ...";

这是什么鬼啊,认真的吗?哦天啊,我被这个解决方案逗笑了。谢谢你,伙计,你是最棒的,而我是最差的。它完美无缺地运行。 - Nicolas

2
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();
        }

试试这个,我认为你错过了SQL插入语法。


是啊,兄弟。我知道的,但最快回答的人先拿到了它。谢谢你,兄弟。我因此而笑了。哈哈。 - Nicolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接