Я пытаюсь перегрузить метод «Удалить» TableAdapter (approach). Как я могу выполнить инструкцию SQL из «здесь» для обработки удаления?Custom TableAdapter Удалить метод переопределения
У меня есть:
Namespace AFL_BackendDataSetTableAdapters
Partial Class Log_entry_unitTableAdapter
Public Overloads Function Delete(ByVal LogEntryID As Integer) As Integer
Dim SQL As String
SQL = "DELETE FROM log_entry_unit WHERE log_entry_unit_id=" & LogEntryID
'?????.Execute SQL
Return 0
End Function
End Class
End Namespace
Перегрузка работает нормально, но я не знаю, как сделать твердую часть и фактически манипулировать данными здесь. Раньше я только что зашел в Dataset Designer и вручную обновил сгенерированные методы для работы, как я их хочу, но всякий раз, когда я использую мастер для восстановления набора данных, это (как и ожидалось) перезаписывается.
Я ранее управлял данными только с помощью сгенерированных методов, и теперь я застрял.
EDIT ж/Окончательный ответ Основываясь на помощь Уильяма ниже вот окончательный рабочий раствор (Обратите внимание, я просто должен был использовать OleDb вместо SQL, так как мой Dataset является Access:
Imports System.Data.OleDb
Namespace AFL_BackendDataSetTableAdapters
Partial Class Log_entry_unitTableAdapter
Public Overloads Function Delete(ByVal LogEntryID As Integer) As Integer
Dim queryString As String = "DELETE FROM log_entry_unit WHERE log_entry_unit_id=" & LogEntryID
Dim command As New OleDbCommand(queryString, Connection)
Dim r As Integer
Try
Connection.Open()
r = command.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
r = 0
Finally
Connection.Close()
End Try
Return r
End Function
End Class
End Namespace
Этот ответ действительно не имеет значения, поскольку он не изменяет существующий адаптер таблицы. – jmcilhinney
@jmcilhinney Я не согласен. Это актуально. Вам все еще нужен код ADO.NET. После удаления они должны снова заполнить адаптер. Возможно, это то, что должно быть включено в ответ. –
Это концептуально то, что я искал. Мне не нужно обновлять существующий адаптатор таблицы, потому что я хочу сделать это вне этого метода. Это соединение с доступом, поэтому я думаю, что мне нужно использовать OleDb вместо SqlConnection, но, с первого взгляда, похоже, что это будет то же самое. Если я застрял, я открою новый вопрос. Благодаря! – BrINClHOF