簡體   English   中英

DataGridView沒有顯示我的刪除按鈕

[英]DataGridView is not displaying my delete button

我在使用DataGridView進行第二次數據加載時遇到問題。

這是我的DataGridView,在第一次加載數據時有一個刪除按鈕:

在此處輸入圖片說明

在第二次加載數據時,這是我得到的錯誤:

在此處輸入圖片說明

單擊Ok ,這就是我的DataGridView中發生的情況:

在此處輸入圖片說明

刪除按鈕不見了。

這是我的代碼:

Private Sub loaddata()
    Dim con As New MySqlConnection
    Dim cmd As New MySqlCommand
    con.ConnectionString = "server=192.168.1.10;database=orderingsystem;username=server;password=server"
    Dim da As New MySqlDataAdapter
    Dim ds As New DataTable
    Dim source As New BindingSource
    Try
        con.Open()
        Dim query As String
        Dim total As Double
        Dim btn As New DataGridViewButtonColumn
        btn.HeaderText = "Action"
        btn.Text = "Delete"
        btn.Name = "btn"
        btn.UseColumnTextForButtonValue = True

        query = "SELECT prodID, SUM(prodQty) as QTY, prodname as Name, prodPrice*SUM(prodQty) as Total from orderedlist where table_name = '" & Form1.Table_1.Name & "' GROUP BY prodID"
        cmd = New MySqlCommand(query, con)
        da.SelectCommand = cmd
        da.Fill(ds)
        source.DataSource = ds
        dgv_myOrder.DataSource = ds
        dgv_myOrder.Columns(0).Visible = False

        For i As Integer = 0 To dgv_myOrder.Rows.Count - 1
            total += Convert.ToDecimal(dgv_myOrder.Rows(i).Cells(3).Value).ToString("0.00")

        Next
        dgv_myOrder.Columns.Add(btn)

        lbl_Total.Text = Decimal.Parse(total).ToString("0.00")
        con.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        con.Dispose()
    End Try
End Sub

Private Sub dgv_myOrder_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_myOrder.CellClick

    If e.RowIndex = dgv_myOrder.NewRowIndex Or e.RowIndex < 0 Then
    ElseIf e.ColumnIndex = dgv_myOrder.Columns("btn").Index Then

        Dim connection As String = "server=192.168.1.10;database=orderingsystem;username=server;password=server;"
        Dim con2 As New MySqlConnection(connection)
        con2.Open()

        Dim data As String = dgv_myOrder.SelectedRows(0).Cells(0).Value.ToString
        Label2.Text = data

        Dim rd2 As MySqlDataReader
        Dim cmd2 As New MySqlCommand("UPDATE orderedlist SET cancelstatus = 1 WHERE prodID = '" & Label2.Text & "' and table_name = '" & Form1.Table_1.Name & "'", con2)

        rd2 = cmd2.ExecuteReader
        con2.Close()
        con2.Open()

        Dim rd3 As MySqlDataReader
        Dim cmd3 As New MySqlCommand("UPDATE tableassistance SET cancellation = 1 WHERE table_name = '" & Form1.Table_1.Name & "'", con2)

        rd3 = cmd3.ExecuteReader

        MessageBox.Show("Wait for confirmation!", "System")
        Me.Close()
        Label2.Text = ""
    End If
End Sub

我在表單加載中調用loaddata()

首先刪除此行:

  dgv_myOrder.Columns.Add(btn)

不要在代碼內部的datagridview中添加按鈕,而是從設計器中創建按鈕並將其用於其他列。

腳步 :

1。 使用datagridview右上角的添加列按鈕創建所有datagrdiview列

這是您添加列的方式

2。添加列之后,將每個列綁定到數據庫中與其相關的列,如下所示,當您在datagidview設計器中單擊EditColumns時,在每個列的屬性中更改DataPropertyName ,將其更改為您希望其預覽但不將其添加到刪除列按鈕的數據表列名稱:

綁定列

3。 轉到datagridview中“刪除”按鈕列的屬性,您將在其中找到名為DefalutCellStyle屬性,並會找到NullValue並將其更改為“ Delete”。

更改空值

暫無
暫無

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

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