为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕后森 2022-12-04 13:18:33
我的问题是,当我创建一个按钮以在单击新拍卖或删除拍卖时刷新数据网格时,什么也没有发生,甚至出现了一些语法错误。所以我需要:刷新按钮,我通过XAML. 因此,当单击删除按钮时,我需要删除一行,这也是我所做的。但是,我的刷新不起作用。我需要从应用程序注销并再次登录,以进行一些更改。我真的不知道该怎么做。我将在下面提供一些图片以及一些代码。默认登录:添加销售或删除销售,然后注销并重新登录:我尝试制作一个自动更新的数据网格。我尝试制作此按钮,出现了一些语法错误,我也尝试添加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);            }        }    }}我希望在添加或删除销售时进行更新,无论是否使用刷新按钮,都无关紧要。只是为了刷新这个网格。谢谢你们。
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

您必须更新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";


查看完整回答
反对 回复 2022-12-04
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Add在和delete块之后试试这个。

DataTable dt = dal.select();
dgGrid.DataSource = dt;

如果没有解决,请在Skype 上 ping 我: vipinweb2


查看完整回答
反对 回复 2022-12-04
  • 2 回答
  • 0 关注
  • 262 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号