Member 13416420 Ответов: 1

Как я могу обновить свои ds, если именно так я их создал?


у меня есть программа с 4 datagridviews и я заполняю их следующим кодом:
   Private Sub Admin_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    CodeMonkey.adminview(InfoDG, "[Info]")
    CodeMonkey.adminview(RoomDG, "[Rooms]")
    CodeMonkey.adminview(UserDG, "[Logins]")
    CodeMonkey.adminview(SettingsDG, "[Monkey]")
End Sub
это для загрузчика форм, тогда у нас есть суб, который вызывается.
Public Sub adminview(ByVal dgv As DataGridView, ByVal Table As String)
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM " & Table & "", con)
    con.Open()
    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(da)
    Dim ds As DataSet = New DataSet
    da.Fill(ds, Table)
    con.Close()
    dgv.DataSource = ds.Tables(Table).DefaultView
    dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End Sub

datagridviews заполняются правильно и работают нормально, моя проблема возникает, когда я хочу обновить информацию, как я могу установить обновление.

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

Первоначально у меня были коды, разделенные для каждого DGV, поэтому я объявил имя для каждого набора данных и других элементов, поэтому обновление было просто с помощью команды DA.update(DS,Table). но теперь я не знаю имени, которое его держит. я также попытался с помощью следующих
Public Sub updater(ByVal Table As String)
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM " & Table & "", con)
    con.Open()
    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(da)
    Dim ds As DataSet = New DataSet
    da.Update(ds, Table)
    ds.AcceptChanges()
    con.Close()
End Sub
однако это не сработало

1 Ответов

Рейтинг:
1

RickZeeland

Я где-то читал, что вы можете использовать:

dataGridView1.Datasource = Nothing
после этого снова установите источник данных:
dgv.DataSource = ds.Tables(Table).DefaultView