Member 13765884 Ответов: 2

Ошибка в запросе INSERT SQL


У меня есть поле checedlist, из которого, если пользователь проверяет поле и нажимает кнопку "отправить", в базе данных создается новая строка (с использованием отмеченного элемента)с требуемой информацией. Но когда я запускаю его, я продолжаю получать ошибку, когда отлаживаю его, говоря ...

Syntax error in INSERT INTO statement


Кто-нибудь может помочь, я не могу найти ошибку


private void Send_Click(object sender, EventArgs e)
{
    string err = "";
    if (checkedListBox.Items.Count > 0)
    {
        for (int i = 0; i < checkedListBox.Items.Count; i++)
        {
            if (err == "")
            {
                err = checkedListBox.Items[i].ToString();
            }

            MAcon.Open();
            OleDbCommand cmd = new OleDbCommand("Insert into Scrap([Order ID], Barcode, Notes, [Scrapped By], [Scrapped Date]) value(@OrderID, @Barcode, @Notes, @ScrappedBy, @ScrappedDate)", MAcon);
            cmd.Parameters.AddWithValue("@OrderID", OrderID.Text);
            cmd.Parameters.AddWithValue("@Notes", Note.Text);
            cmd.Parameters.AddWithValue("@ScrappedBy", EmplID.Text);
            cmd.Parameters.AddWithValue("@ScrappedDate", Date.Text);
            cmd.Parameters.AddWithValue("@Barcode", err);
            cmd.ExecuteNonQuery();
            MAcon.Close();
        }
    }
}


Что я уже пробовал:

MAcon.Open();
OleDbCommand cmd = new OleDbCommand("Insert into Scrap([Order ID], Barcode, Notes, [Scrapped By], [Scrapped Date]) value(@OrderID, @Barcode, @Notes, @ScrappedBy, @ScrappedDate)", MAcon);
cmd.Parameters.AddWithValue("@OrderID", OrderID.Text);
cmd.Parameters.AddWithValue("@Notes", Note.Text);
cmd.Parameters.AddWithValue("@ScrappedBy", EmplID.Text);
cmd.Parameters.AddWithValue("@ScrappedDate", Date.Text);
cmd.Parameters.AddWithValue("@Barcode", err);
cmd.ExecuteNonQuery();
MAcon.Close();

Richard MacCutchan

Вы уверены, что все эти значения являются простыми полями VARCHAR в вашей базе данных? Хранение дат в виде текста - это действительно плохая идея для начала.

2 Ответов

Рейтинг:
2

Maciej Los

В дополнение к решению №1 по Доминик Абрахам[^]

Вы забыли добавить @barcode параметр:

MAcon.Open();
OleDbCommand cmd = new OleDbCommand("Insert into Scrap([Order ID], Barcode, Notes, [Scrapped By], [Scrapped Date]) values(@OrderID, @Barcode, @Notes, @ScrappedBy, @ScrappedDate)", MAcon);
cmd.Parameters.AddWithValue("@OrderID", OrderID.Text);
cmd.Parameters.AddWithValue("@OrderID", Barcode.Text); //<- missed value!
cmd.Parameters.AddWithValue("@Notes", Note.Text);
//...


Рейтинг:
1

Dominic Abraham

Пожалуйста, исправьте написание слова "ценность".Это должны быть "ценности"

OleDbCommand cmd = new OleDbCommand("Insert into Scrap([Order ID], Barcode, Notes, [Scrapped By], [Scrapped Date]) <big>values</big>(@OrderID, @Barcode, @Notes, @ScrappedBy, @ScrappedDate)", MAcon);



SQL INSERT Query[^]


Maciej Los

5ed!