kyrons Ответов: 1

Как открепить и повторно привязать listbox с данными из базы данных access в VB.NET-что?


Я могу заполнить список данными из базы данных, но я не могу обновить элементы списка после распаковки и повторной привязки. Когда я повторно связываю listbox1, он добавляет или накапливает все элементы и не обновляется, а просто добавляет.

Что я уже пробовал:

Это при заполнении списка

<pre>  provider = "Provider=Microsoft.Ace.Oledb.12.0;"
               dbtblats = "Data Source =ATSDatabase.accdb;"
        tblatsconnection.ConnectionString = provider & dbtblats
        tblatsconnection.Open()
        SqlQuery = "SELECT * FROM ATS"
        datblats = New OleDb.OleDbDataAdapter(SqlQuery, tblatsconnection) '
        datblats.Fill(dstblats, "ATS")
        tblatsconnection.Close()

        Me.ListBox1.DataSource = dstblats.Tables("ATS")
        Me.ListBox1.DisplayMember = "FullNameCN"


Я попробовал этот код, чтобы развязать и повторно связать данные с новыми данными:

<pre> Listbox1.DataSource = Nothing
        provider = "Provider=Microsoft.Ace.Oledb.12.0;"
               dbtblats = "Data Source =ATSDatabase.accdb;"
        tblatsconnection.ConnectionString = provider & dbtblats
        tblatsconnection.Open()
        SqlQuery = "SELECT * FROM ATS WHERE DateProcessed IS NULL ORDER BY DateReceived DESC"
        datblats = New OleDb.OleDbDataAdapter(SqlQuery, tblatsconnection) '
        datblats.Fill(dstblats, "ATS")
        tblatsconnection.Close()
               Me.ListBox1.DataSource = dstblats.Tables("ATS")
        Me.ListBox1.DisplayMember = "FullNameCN"

1 Ответов

Рейтинг:
2

Richard MacCutchan

То объект DataAdapter.Метод Заполнения (System.Data.Всего) | Майкрософт Документы[^] добавляет новые строки в существующем наборе. Сначала вам нужно очистить таблицы адаптеров.


kyrons

Благодарю вас, сэр Ричард Маккатчен. Я могу заполнить данные в списке, но не могу очистить существующие данные. Я использовал listbox1.datasource = nothing и listbox1.items.clear, но я получил ошибку "коллекция элементов не может быть изменена, когда свойство DataSource установлено". можете ли вы дать мне решение или любое предложение, чтобы очистить существующие элементы в listbox?

Richard MacCutchan

Вы не можете использовать listbox1.items.clear на связанном элементе управления, так как элементы поступают из привязки. Вам нужно удалить существующие данные из источника.