Простой вопрос:SqlDataAdapter.Fill (DataGridView.DataSource) дублирует все строки
Когда я звоню SqlDataAdapter.Fill(DataGridView.DataSource)
во второй раз после того, как первоначально создание первых данных не обновлять содержащиеся строки. Он просто добавляет все строки, возвращаемые командой select, в мой DataGridView.
Если я назову его третьим, четвертым (так далее), он также просто добавит возвращенные строки.
Я понимаю, что функция .Fill (DataTable) ошибочна? Как правильно обновить уже существующий DataTable? Какая строка кода отвечает за это?
Оказывается, это должно быть проблемой кода;
DataGridView1.AutoGenerateColumns = False
Dim sql = "select * from myTable"
oDtSource = New DataTable
oAdapter = New SqlDataAdapter
oCon = sqlCon("serverName\Instance", "myDataBase") ' Returns a SqlConnection
oCmd = New SqlCommand(sql, oCon)
oCon.Open()
oDtSource.Clear()
oAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
oAdapter.SelectCommand = oCmd
oAdapter.Fill(oDtSource)
DataGridView1.DataSource = oDtSource
Для освежения я использую oAdapter.Fill(oDtSource)
PrimaryKey устанавливается в базе данных
Просьба показать, как вы настроили DataAdapter (я предполагаю, что вы пытаетесь обновить данные, иначе просто используйте New datatable или очистите строки). Не знаю, почему DV отличается от недостатка кода - это достойный вопрос. – Plutonix
Я уверен, что Тим Шмельтер вернул меня на правильный путь. WorkTime закончилось, поэтому я должен буду это проверить завтра. Еще раз спасибо @Plutonix за то, что привлек меня к этому пути, чтобы попытаться использовать метод .Fill вместо создания новых таблиц снова и снова. – Luke
Код был опубликован выше. – Luke