ВСТАВИТЬ синтаксическую ошибку запроса в ASP.NET C # с доступом

#asp.net #ms-access

#asp.net #ms-access

Вопрос:

Я пытаюсь вставить данные в базу данных Access с помощью C #. Ошибка, которую я получаю,

Вставить в синтаксическую ошибку оператора

Код

 textBox5.Text = ins; //string value
string into = "INSERT INTO customersales(c-invoiceNo,c-invoiceDate, c-discount, c-rant,c-paid, c-due) values ('"  textBox5.Text.ToString()   "',"   dateTimePicker1.Text   ","   diccombo.Text.Trim()   ","   GRANTTXT.Text   ","   TXTPAID.Text   ","  txtdue.Text   ")";
 con.Open();
 cmd = new OleDbCommand(into, con);
 cmd.ExecuteNonQuery();
 con.Close();
  

Имя таблицы: customersales

имя_столбца :

идентификатор (автономер)
c-InvoiceNo (текст)
c-InvoiceDate (дата / время)
c-скидка (валюта)
c-грант (валюта)
c-оплаченный (валюта)
c-due (валюта)

Комментарии:

1. Скопируйте и вставьте значение into в окно запроса в MS Access. Работает ли это?

2. Into не является зарезервированным словом в C sharp?

Ответ №1:

Вы должны использовать параметризованный запрос, например

 string into = 
        "INSERT INTO [customersales] ([c-invoiceNo], [c-invoiceDate], [c-discount], [c-grant], [c-paid], [c-due]) "  
        "VALUES (?,?,?,?,?,?)";
con.Open();
cmd = new OleDbCommand(into, con);
cmd.Parameters.AddWithValue("?", textBox5.Text);
cmd.Parameters.AddWithValue("?", dateTimePicker1.Value.Date);
cmd.Parameters.AddWithValue("?", diccombo.Text);
cmd.Parameters.AddWithValue("?", GRANTTXT.Text);
cmd.Parameters.AddWithValue("?", TXTPAID.Text);
cmd.Parameters.AddWithValue("?", txtdue.Text);
cmd.ExecuteNonQuery();
con.Close();
  

Комментарии:

1. этот код не работает должным образом, и произошла та же ошибка. пожалуйста, предложите еще раз.

2. @user2834203 Я обновил свой ответ. (Изменено dateTimePicker1.Value на dateTimePicker1.Value.Date .)

Ответ №2:

Измените свой запрос таким образом,

   string into = "INSERT INTO customersales(c-invoiceNo,c-invoiceDate, c-discount, c-grant,c-paid, c-due) values ('"  textBox5.Text.ToString()   "',"   dateTimePicker1.Text   ","   diccombo.Text.Trim()   ","   GRANTTXT.Text   ","   TXTPAID.Text   ","  txtdue.Text   ")";
  

Перед этим проверьте, установлена ли в спецификации идентификатора вашего автономера значение true или нет?

Комментарии:

1. Проверьте мой ответ сейчас. Измените свой синтаксис с помощью моей приведенной выше строки кода