Sql DataGridView每次按刷新按钮时复制vb.net

Sql DataGridView每次按刷新按钮时复制vb.net,sql,database,vb.net,visual-studio,datagridview,Sql,Database,Vb.net,Visual Studio,Datagridview,我正在尝试刷新我的DataGridView1。我想我必须添加一个clear函数,因为每当我按下刷新按钮时,它都会不断复制数据。我没有使用DataGridView1的数据源 提前感谢您抽出时间 编码: Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click Refreshdata() End Sub Dim myConnection As New OleDbCo

我正在尝试刷新我的DataGridView1。我想我必须添加一个clear函数,因为每当我按下刷新按钮时,它都会不断复制数据。我没有使用DataGridView1的数据源

提前感谢您抽出时间

编码:

    Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click
    Refreshdata()
End Sub

Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ahmed\OneDrive\Desktop\ProjectDatabase2003.mdb")
Dim DS As DataSet = New DataSet
Dim DA As OleDbDataAdapter
Dim tables As DataTableCollection = DS.Tables
Dim source1 As New BindingSource()

Private Sub Refreshdata()
    DA = New OleDbDataAdapter("Select * from Risk_Register", myConnection)
    DA.Fill(DS, "Risk_Register")
    Dim view1 As New DataView(tables(0))
    source1.DataSource = view1
    DataGridView1.DataSource = view1
    DataGridView1.Refresh()

End Sub

Fill
方法可以复制行

填充操作将行添加到指定的目标 数据集中的DataTable对象,创建DataTable对象(如果 还不存在。创建DataTable对象时,填充 操作通常只创建列名元数据。然而,如果 MissingSchemaAction属性设置为AddWithKey(如果适用) 还将创建主键和约束

如果存在主键信息,则会删除所有重复的行 已对账,仅在对应的数据表中显示一次 到数据集。主键信息可以通过以下两种方式设置: 通过指定DataTable的PrimaryKey属性,或 通过将MissingSchemaAction属性设置为AddWithKey


确保在目标表上定义了PK。或者,在填充之前清除表,但要注意表所参与的FK和关系(如果有)。

我认为您应该调用适配器下可用的更新方法。

我尝试在填充之前清除DataGridView1,但使用DataGridView1.Rows.clear()对我也不起作用。我没有使用数据源,是的,我在表中定义了一个PK。它只是复制了vb.net应用程序上的表,但没有复制我的Access数据库。我收到一个错误,说“无法清除列表”清除DataTable,而不是DataGridViews我会在Refreshdata()之前添加这个吗?另外,我以前从未使用过清除DataTable的格式是什么?如果这是填充DS的数据检索的唯一点,您可以清除整个DS
DS.Clear()
然后
DA.Fill(DS,…)
。对不起,我不明白你的意思。