"Concurrency violation: the DeleteCommand affected 0 of the expected 1 records."
БД берется из Access. Помещается на DataGridView с помощью DataSet и DataAdapter.
Код:
"
- Код: Выделить всё
Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\sclad.mdb;")
Dim da1 As New OleDb.OleDbDataAdapter("", conn)Dim ds1 As New DataSet()
'/////InsertCommand/////
myInsertCommand1 = conn.CreateCommand() myInsertCommand1.CommandText = "INSERT INTO product_data (ID, Название, Дата, Сумма, Количество, Цена, Осталось) VALUES (?, ?, ?, ?, ?, ?, ?)"
myInsertCommand1.Parameters.Add("@ID", OleDb.OleDbType.VarWChar, 50, "ID")myInsertCommand1.Parameters.Add("@Название", OleDb.OleDbType.VarWChar, 50, "Название")myInsertCommand1.Parameters.Add("@Дата", OleDb.OleDbType.Date, 50, "Дата")myInsertCommand1.Parameters.Add("@Сумма", OleDb.OleDbType.Double, 50, "Сумма")myInsertCommand1.Parameters.Add("@Количество", OleDb.OleDbType.Integer, 50, "Количество")myInsertCommand1.Parameters.Add("@Цена", OleDb.OleDbType.Double, 50, "Цена")myInsertCommand1.Parameters.Add("@Осталось", OleDb.OleDbType.VarWChar, 50, "Осталось")
da1.InsertCommand = myInsertCommand1
'/////UpdateCommand////
myUpdateCommand1 = conn.CreateCommand()myUpdateCommand1.CommandText = "UPDATE product_data SET Название = ?, Дата = ?, Сумма = ?, Количество = ?, Цена = ?, Осталось = ? WHERE (ID = ?)"
myUpdateCommand1.Parameters.Add("@Название", OleDb.OleDbType.VarWChar, 50, "Название")myUpdateCommand1.Parameters.Add("@Дата", OleDb.OleDbType.Date, 50, "Дата")myUpdateCommand1.Parameters.Add("@Сумма", OleDb.OleDbType.Double, 50, "Сумма")myUpdateCommand1.Parameters.Add("@Количество", OleDb.OleDbType.Integer, 50, "Количество")myUpdateCommand1.Parameters.Add("@Цена", OleDb.OleDbType.Double, 50, "Цена")myUpdateCommand1.Parameters.Add("@Осталось", OleDb.OleDbType.VarWChar, 50, "Осталось")myUpdateCommand1.Parameters.Add("@ID", OleDb.OleDbType.Integer, 50, "ID")da1.UpdateCommand = myUpdateCommand1
'/////DeleteCommand////
myDeleteCommand1 = conn.CreateCommand()myDeleteCommand1.CommandText = "DELETE FROM product_data WHERE (Название = ?) AND (Дата = ?) AND (Сумма = ?) AND (Количество = ?) AND (Цена = ?) AND (Осталось = ?) AND (ID = ?)"
myDeleteCommand1.Parameters.Add("@Название", OleDb.OleDbType.VarWChar, 50, "Название")myDeleteCommand1.Parameters.Add("@Дата", OleDb.OleDbType.Date, 50, "Дата")myDeleteCommand1.Parameters.Add("@Сумма", OleDb.OleDbType.Double, 50, "Сумма")myDeleteCommand1.Parameters.Add("@Количество", OleDb.OleDbType.Integer, 50, "Количество")myDeleteCommand1.Parameters.Add("@Цена", OleDb.OleDbType.Double, 50, "Цена")myDeleteCommand1.Parameters.Add("@Осталось", OleDb.OleDbType.VarWChar, 50, "Осталось")myDeleteCommand1.Parameters.Add("@ID", OleDb.OleDbType.Integer, 50, "ID")
da1.DeleteCommand = myDeleteCommand1
mySelectCommand1 = conn.CreateCommand()mySelectCommand1.CommandText = "SELECT * FROM product_data"
da1.SelectCommand = mySelectCommand1da1.Fill(ds1)DataGridView1.DataSource = ds1.Tables(0).DefaultView
'Когда делаю update. Ошибка
da1.Update(ds1)
Ошибка появляется когда хочу именно удалить.
Жду ответа. Спасибо