从数据库中删除记录后,Datagridview不会刷新

时间:2011-04-04 16:05:25

标签: c# winforms

为什么不刷新?

private void deleteRecord()
        {
            if (BooksGrid.SelectedRows.Count > 0)
            {
                int selectedIndex = BooksGrid.SelectedRows[0].Index;

                int rowID = int.Parse(BooksGrid[0, selectedIndex].Value.ToString());
                string sql = "DELETE FROM Books WHERE BookID = @RowID";

                SqlCommand deleteRecord = new SqlCommand();
                deleteRecord.Connection = Booksconnection;
                deleteRecord.CommandType = CommandType.Text;
                deleteRecord.CommandText = sql;

                SqlParameter RowParameter = new SqlParameter();
                RowParameter.ParameterName = "@RowID";
                RowParameter.SqlDbType = SqlDbType.Int;
                RowParameter.IsNullable = false;
                RowParameter.Value = rowID;

                deleteRecord.Parameters.Add(RowParameter);

                deleteRecord.Connection.Open();

                deleteRecord.ExecuteNonQuery();

                deleteRecord.Connection.Close();

            }
        }

2 个答案:

答案 0 :(得分:0)

Dataset.GetChanges()只有在您通过数据集进行更改时才会起作用 - 在这种情况下,您将在其控制之外进行更改,因此您将不得不自己重新加载数据集(或更好的是,首先调用填充它的方法) - 这样,你也可以从其他用户那里获取更改......

答案 1 :(得分:0)

如果不确切知道DataGridView的{​​{1}}是什么,(并假设记录实际上已从数据库中删除),我会说你需要重置DataSource,无论如何它可能是。

例如,在我的代码中,我通常会DataSource作为DataTable,然后我会调用DataSource来清除它。之后,我用数据库填充它。这样可以确保我的DataTable.Clear()已完全更新为DataGridView DataTable