2015-01-07 2 views
0

У меня возникла эта проблема, когда я нажимаю кнопку удаления. Я получаю эту ошибку «Обновление требует действительного DeleteCommand при передаче коллекции DataRow с удаленными строками». Я использую визуальные основы 2008 и доступ к Microsoft для моей программы ,Ошибка удаления кнопки

Dim CurrentRowNo As Integer = 0 
Dim objDataSet As New DataSet 
Dim objDataAdapter As New OleDbDataAdapter("SELECT * FROM Stock", cn) 

    If objDataTable.Rows.Count > 0 Then 
     objDataTable.Rows(CurrentRowNo).Delete() 
     objDataAdapter.Update(objDataTable) 
    End If 

ответ

1

У вас нет объекта DeleteCommand для этого адаптера данных. Вы можете вручную создать DeleteCommand или использовать CommandBuilder, чтобы сгенерировать их для вас.

Для получения дополнительных сведений о объектах CommandBuilder отметьте here.

Что-то вдоль линий (непроверенных код воздуха):

Dim CurrentRowNo As Integer = 0 
Dim objDataSet As New DataSet 
Dim objDataAdapter As New OleDbDataAdapter("SELECT * FROM Stock", cn) 

Dim builder as SqlCommandBuilder = New SqlCommandBuilder(objDataAdapter) 
builder.QuotePrefix = "[" 
builder.QuoteSuffix = "]" 

If objDataTable.Rows.Count > 0 Then 
    objDataTable.Rows(CurrentRowNo).Delete() 
    objDataAdapter.Update(objDataTable) 
End If 
+0

Я обнаружил, что сайт довольно запутанным может показать мне пример, пожалуйста. –

+0

Я сделал это, но теперь эта ошибка появляется. «Запись не может быть удалена или изменена, потому что таблица« Строка заказа »включает связанные записи». –

+0

Это потому, что в вашей таблице запасов есть связанные записи в таблице Order Line. Вам придется пересмотреть дизайн на этом. Это не будет простым обновлением таблицы на основе DataTable. Если вы удаляете элемент «Запасы», ваша таблица позиций заказа больше не ссылается на действительный элемент «Товар». – KevenDenen