簡體   English   中英

如何在C#中為datagridview創建“刷新”按鈕?

[英]How to create “Refresh” button for datagridview in C#?

我的問題是,當我創建一個單擊新拍賣或刪除拍賣時刷新數據網格的按鈕時,什么也沒有發生,甚至出現了一些語法錯誤。 所以我需要:

刷新按鈕,這是我通過XAML 因此,當單擊刪除按鈕時,我也需要刪除一行。 但是,我的刷新無效。 我需要從應用程序注銷並再次登錄,以進行一些更改。 我真的不知道該怎么做。

我將在下面提供一些圖片以及一些代碼。

默認登錄: 1

添加銷售或刪除銷售,然后注銷並重新登錄: 2

我嘗試制作一個可以自動更新的數據網格。 我嘗試制作此按鈕,遇到一些語法錯誤,也嘗試添加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);
            }
        }

        private void AddNew_Click(object sender, RoutedEventArgs e)
        {
            NewDeleteWindow newDeleteWindow = new NewDeleteWindow();
            newDeleteWindow.DataContext = new NewSaveButton();
            newDeleteWindow.ShowDialog();

        }
    }

}

我希望在添加或刪除銷售,使用刷新按鈕或不使用銷售按鈕時進行刷新。 只是為了刷新此網格。 謝謝你們。

您必須更新table ,就像在加載form時更新t一樣。 在代碼中替換以下方法:

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";

Adddelete塊之后嘗試此操作。

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

如果無法解決,請在Skype上ping我 vipinweb2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM