Я извлекаю из своей базы данных 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
?
Используемое jmcilhinney предложение, создало отдельную таблицу, сравнило два и удалило из основной таблицы, если она не существовала в другой.
Спасибо :)
Update
- это средство отправки изменений в DataTable в БД. Функция обновления - получения других изменений в DT - выполняется с помощью методаFill
. Из MSDN Добавляет или обновляет строки в указанном диапазоне в наборе данных, чтобы они соответствовали тем в источнике данных, используя имя DataTable. Не очищайте DataTable - DA знает вещи ... IMO, как правило, локальный DataAdapter - пустая трата времени - они очень мощные и их нужно настраивать и поддерживать