Member 13765884 Ответов: 2

Обновление 1 строки с использованием первичного ключа


У меня есть datagridview в форме 1, пользователь выбирает строку, и соответствующие сведения отправляются в коррелирующие текстовые поля в форме 2. отсюда пользователь нажимает кнопку, которая должна обновить ячейку в выбранной строке (в базе данных) и изменить ее на "в производстве" (что является текстовым полем orderstatus).

Я хочу иметь возможность обновить строку, которая коррелирует с идентификатором клиента, который является первичным ключом в базе данных... в настоящее время программное обеспечение обновляет все в таблице базы данных ...

Я пытался отладить его, но не вижу ошибки

MAcon.Open();
OleDbCommand cm = new OleDbCommand("UPDATE [Customer Orders] SET [Order Status]=@OrderStatus WHERE [CustomerID]=@CustomerID", MAcon);
cm.Parameters.AddWithValue("@OrderStatus", textBox4.Text);
cm.Parameters.AddWithValue("@CustomerID", CustID.Text);
cm.ExecuteNonQuery();
MAcon.Close();


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

MAcon.Open();
OleDbCommand cm = new OleDbCommand("UPDATE [Customer Orders] SET [Order Status]=@OrderStatus WHERE [CustomerID]=@CustomerID", MAcon);
cm.Parameters.AddWithValue("@OrderStatus", textBox4.Text);
cm.Parameters.AddWithValue("@CustomerID", CustID.Text);
cm.ExecuteNonQuery();
MAcon.Close();

j snooze

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

Member 13765884

Он также обновляет все остальные строки

2 Ответов

Рейтинг:
2

Christian Graus

SQL так не работает. Это просто не так. Если у всех них нет одного и того же идентификатора или работает другой SQL, этого просто не произойдет.

Рассматривали ли вы возможность использования Entity Framework? Это строковое затирание SQL ужасно


Рейтинг:
1

Member 13765884

Я решил эту проблему,

[CustomerID]
должно быть
[Customer ID]
вместо