猿问

如何在 C# 中为 datagridview 创建“刷新”按钮?

我的问题是,当我创建一个按钮以在单击新拍卖或删除拍卖时刷新数据网格时,什么也没有发生,甚至出现了一些语法错误。所以我需要:

刷新按钮,我通过XAML. 因此,当单击删除按钮时,我需要删除一行,这也是我所做的。但是,我的刷新不起作用。我需要从应用程序注销并再次登录,以进行一些更改。我真的不知道该怎么做。

我将在下面提供一些图片以及一些代码。

默认登录:

添加销售或删除销售,然后注销并重新登录:

http://img4.mukewang.com/638c2dd10001ee8a06560359.jpg

我尝试制作一个自动更新的数据网格。我尝试制作此按钮,出现了一些语法错误,我也尝试添加dgGridView.Items.Refresh(),但也无济于事。


public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            BindDataGrid();

        }



        private void BindDataGrid()

        {


            SqlConnection conn = new SqlConnection();

            conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ToString();

            conn.Open();


            SqlCommand comm = new SqlCommand("SELECT * FROM AuctionTbl2", conn);

            DataSet ds = new DataSet();

            SqlDataAdapter da = new SqlDataAdapter(comm);

            da.Fill(ds);

            dgGrid.ItemsSource = ds.Tables[0].DefaultView;

            dgGrid.Items.Refresh();


        }


        private void LogoutBtn_Click(object sender, RoutedEventArgs e)

        {

            MainWindowGuest mwg = new MainWindowGuest();

            mwg.Show();

            this.Close();

            MessageBox.Show("You have been logged out.");

        }


        private void DeleteBtn_Click(object sender, RoutedEventArgs e)

        {

            try

            {


                SqlConnection conn = new SqlConnection();

                conn.ConnectionString = 

              ConfigurationManager.ConnectionStrings["ConnString"].ToString();

                conn.Open();


                string query = "delete from AuctionTbl2";

                SqlCommand comm = new SqlCommand(query, conn);

                comm.ExecuteNonQuery();


                MessageBox.Show("Deleted");


                conn.Close();


            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

    }


}

我希望在添加或删除销售时进行更新,无论是否使用刷新按钮,都无关紧要。只是为了刷新这个网格。谢谢你们。


慕后森
浏览 263回答 2
2回答

当年话下

您必须更新table, 就像您在加载form. 在您的代码中替换这些方法:private void DeleteBtn_Click(object sender, RoutedEventArgs e){    try    {        SqlConnection conn = new SqlConnection();        conn.ConnectionString =         ConfigurationManager.ConnectionStrings["ConnString"].ToString();        conn.Open();        string query = "delete from AuctionTbl2";  // i think you are not aaully deleting the record you want to delete        SqlCommand comm = new SqlCommand(query, conn);        comm.ExecuteNonQuery();        MessageBox.Show("Deleted");        conn.Close();        BindDataGrid();    }    catch(Exception ex)    {        MessageBox.Show(ex.Message);    }} private void AddNew_Click(object sender, RoutedEventArgs e){    NewDeleteWindow newDeleteWindow = new NewDeleteWindow();    newDeleteWindow.DataContext = new NewSaveButton();    newDeleteWindow.ShowDialog();    BindDataGrid();}更新:要删除sale您单击的内容,请执行以下步骤:做一个global variable“int IDdelete”。去Designer.cs。单击dataGridView。你会Properties在右侧看到。点击events。滚动并找到CellClick并双击它。它将创建一个这样命名的方法private void dgGrid_CellClick(object sender, DataGridViewCellEventArgs e)现在将下面的代码粘贴到该方法中。private void dgGrid_CellClick(object sender, DataGridViewCellEventArgs e){   IDdelete = Convert.InTo32(dgGrid.Rows[e.RowIndex].Cells[0].Value);}Now, in your `SQL query` use this query.   "DELETE from AuctionTbl2 where id=@IDelete";

杨__羊羊

Add在和delete块之后试试这个。DataTable dt = dal.select(); dgGrid.DataSource = dt;如果没有解决,请在Skype 上 ping 我: vipinweb2
随时随地看视频慕课网APP
我要回答