Ошибка, которую вы делаете, заключается в том, что вы, похоже, используете объект набора данных для хранения ваших данных. Каждый раз, когда вы используете следующий код для помещения данных в ваш набор данных, вы добавляете данные к данным, уже имеющимся в вашем наборе данных.
myDataAdapter.Fill(myDataSet)
Если вы назначите таблицу в своем наборе данных для объекта DataGridView в вашей программе с помощью следующего кода, вы получите дублированные результаты, поскольку вы не очистили данные, которые уже находятся в вашем наборе данных и в вашей таблице набора данных.
myDataGridView.DataSource = myDataSet.Tables(0)
Чтобы избежать репликации данных, вы должны вызывать метод clear для вашего объекта набора данных.
myDataSet.clear()
Затем назначьте таблицу в вашем наборе данных вашему объекту DataGridView.
Код такой.
myDataSet.clear()
myDataAdapter.Fill(myDataSet)
myDataGridView.DataSource = myDataSet.Tables(0)
Вы можете попробовать этот код:
' clear previous data
DataGridView2.DataSource = Nothing
DataGridView2.DataMember = Nothing
DataGridView2.Refresh()
Try
connection.Open()
adapter1 = New SqlDataAdapter(sql, connection)
' clear data already in the dataset
ds1.Clear()
adapter1.Fill(ds1)
DataGridView2.DataSource = ds1.Tables(0)
connection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try