Я полностью слеп с этой ошибкой. Я больше человек 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();
Я уже ищу, и он говорит, что он устарел. это правда?
NB: Я использую ODP.NET, и я использую visual studio 2010.
Проблема с вашим запросом заключается в том, что вы обмениваете имена столбцов одинарными кавычками, что делает их строковыми литералами.
Чтобы устранить проблему, просто удалите одинарные кавычки вокруг имен столбцов:
var sql = "insert into master_dosen(NIP,NAMA_DOSEN,KETERANGAN) ...";
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