Я попробовал все, используя другие ответы на форуме. Я просто хочу, чтобы представление таблицы данных динамически обновлялось, когда я выбираю кнопку обновления в форме после внесения изменений.
Ссылаясь на приведенный ниже код, текущий результат заключается в том, что когда я добавляю новую строку и нажимаю кнопку обновления, представление сетки данных просто добавляет все существующие записи (и новую строку) внизу, так что список продолжает увеличиваться в размере с дублированием значения.
public UserGroupsGridViewForm()
{
InitializeComponent();
}
private void UserGroupsGridViewForm_Load(object sender, EventArgs e)
{
LoadUserGroupsToDataTable();
}
public static SqlCommandBuilder userGroupsSqlCommandBuilder;
public static DataTable userGroupsDataTable = new DataTable();
public static SqlDataAdapter userGroupsSqlAdaptor;
public void LoadUserGroupsToDataTable()
{
try
{
SqlConnection connection = new SqlConnection(connectionString);
string cmdText1 = "SELECT * FROM [dbo].[UserGroups]";
userGroupsSqlAdaptor = new SqlDataAdapter(cmdText1, connection);
userGroupsSqlCommandBuilder = new SqlCommandBuilder(userGroupsSqlAdaptor);
userGroupsSqlAdaptor.Fill(userGroupsDataTable);
}
catch (Exception ex)
{
log.Error(ex);
SystemEvents.DatabaseExceptions(ex);
}
LoadDataTabletoGridView();
}
private void LoadDataTabletoGridView()
{
try
{
UserGroupsGridView1.DataSource = userGroupsDataTable;
}
catch (Exception ex)
{
SystemEvents.DatabaseExceptions(ex);
}
}
private void SaveChangesButton_Click(object sender, EventArgs e)
{
userGroupsSqlAdaptor.Update(userGroupsDataTable);
//UserGroupsGridView1.Update(); // not working!
//UserGroupsGridView1.Refresh(); // not working!
LoadUserGroupsToDataTable();
}