Хорошо, поэтому я пытаюсь сделать простое приложение SQL CE Viewer для просмотра моих локальных баз данных для другого приложения, у меня есть настройка, чтобы я мог выбрать, какую базу данных я хочу открыть и то он автоматически заполняет комбинированное поле со всеми таблицами в базе данных. Когда я выбираю таблицу, он заполняет DataGridView с записями в таблице.C#: Сброс DataGridView для нового DataTable
Моя проблема заключается в переключении между таблицами. Я не могу заставить DataGridView удалить все из предыдущей таблицы и повторно заполнить DataGridView новой информацией о таблице. Конечно, каждая таблица имеет разные столбцы и строки и т. Д.
Я искал в Интернете и искал здесь, и каждое предложение, которое я нахожу, похоже, не работает. Он заполняет DataGridView с первой таблицей только штрафом, но когда я выбираю другой, он в основном добавляет столбцы и строки во все, что там было.
Как я могу получить DataGridView для полной очистки для новых данных?
И, пожалуйста, не говорите мне использовать dataGridView1.DataSource = null; Пробовал это, не работает.
'conn = new SqlCeConnection (@" Источник данных = "+ fixFilePath); используя (conn) { conn.Open(); command = new SqlCeCommand ("SELECT * FROM" + tableName, conn); daDataGridView = новый SqlCeDataAdapter (команда); daDataGridView.Fill (dtDataGridView); bsDataGridView.DataSource = dtDataGridView; dataGridView1.DataSource = bsDataGridView; } ' –
Вот исходный код: http://www.filedropper.com/sqlcedatabaseviewer –
Я не уверен, но ваша проблема может возникнуть из-за того, что вы не очищаете данные, прежде чем устанавливать для нее новую таблицу. Метод Multiple Fill для единственного DataTable, скорее всего, добавляет новые строки в существующие. Если вы еще не пробовали, вы можете это проверить. Как я уже сказал, я не уверен на 100% и не могу проверить это сейчас. Вы также можете попробовать использовать DataSet, а затем добавить в него новые выбранные таблицы в качестве DataTables. – Radley