我已经使用论坛上的其他答案尝试了一切。我只是希望我的数据网格视图在进行更改后选择表单上的更新按钮时动态更新。
参考下面的代码,当前的结果是,当我添加新行并按下更新按钮时,数据网格视图只是将所有现有记录(和新行)附加到下面,因此列表的大小会随着重复值不断增长。
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();
}