Как обновить сетку данных, привязанную к таблице данных, с помощью адаптера данных MySQL

0

Я извлекаю из своей базы данных MySQL и заполняю его с помощью MySQLDataAdapter. MasterDataTable - это мой DT уровня класса.

Dim SQLstring As String = "SELECT * FROM Inventory.Metadata"
Using cmdSel As New MySqlCommand(SQLstring, MySQLconn.conn)
   Dim da As New MySqlDataAdapter(cmdSel)
   da.Fill(MasterDataTable)
End Using

Кто-то обновляет базу данных MySQL, и я хочу снова обновить данные.

MasterDataTable.Clear() 
Dim SQLstring As String = "SELECT * FROM Inventory.Metadata"
Using cmdSel As New MySqlCommand(SQLstring, MySQLconn.conn)
   Dim da As New MySqlDataAdapter(cmdSel)
   da.Fill(MasterDataTable)
End Using

Проблема в том, что если пользователь имеет что-то выбранное, он очистит их выбор.

Очевидно, это очищает данные и повторно заполняет их. Есть ли способ выполнить ту же задачу без MasterDataTable.clear?

  • 1
    Во-первых, Update - это средство отправки изменений в DataTable в БД. Функция обновления - получения других изменений в DT - выполняется с помощью метода Fill . Из MSDN Добавляет или обновляет строки в указанном диапазоне в наборе данных, чтобы они соответствовали тем в источнике данных, используя имя DataTable. Не очищайте DataTable - DA знает вещи ... IMO, как правило, локальный DataAdapter - пустая трата времени - они очень мощные и их нужно настраивать и поддерживать
  • 0
    @Plutonix Если я не очищаю данные, данные появляются дважды, это то, чего я пытаюсь избежать. Вы говорите, что это происходит, потому что я создаю новый DA и заполняю им DT? Извините, немного Nooby с этой всей вещи MySQL LOL.
Показать ещё 7 комментариев
Теги:
wpf
datagrid

1 ответ

0
Лучший ответ

Используемое jmcilhinney предложение, создало отдельную таблицу, сравнило два и удалило из основной таблицы, если она не существовала в другой.

Спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню