簡體   English   中英

在沒有標題的datagridview中顯示數據庫

[英]show database in datagridview without header

我想將數據庫表加載到datagridview,我可以編輯和更新列,我現在使用列表視圖,但我想使用gartagridview,因為它更容易編輯其中的數據。

我正在使用此代碼在列表視圖中顯示數據庫中的數據:

Public Sub showlistview()
    Try
        Dim dt As New DataTable
        Dim ds As New DataSet
        ds.Tables.Add(dt)
        Dim da As New OleDbDataAdapter("select * from pay_pretalk where cust_id=" & pretalk_pay.TextBox4.Text & " order by sdate DESC ", con)
        da.Fill(dt)
        Dim myrow As DataRow
        For Each myrow In dt.Rows
            ListView1.Items.Add(myrow.Item(0))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(2))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(4))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(5))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(6))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(7))
        Next
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

如何在datagridview中執行相同操作而不顯示數據庫的標頭並在datagridview屬性中使用我的自定義標頭。

如果我使用此代碼在datagridview中顯示數據:

        Dim dt As New DataTable
        Dim ds As New DataSet
        ds.Tables.Add(dt)
        Dim da As New OleDbDataAdapter("select * from pay_pretalk where cust_id=" & pretalk_pay.TextBox4.Text & " order by sdate DESC ", con)
        da.Fill(dt)
        DataGridView1.DataSource = dt

這顯示所有表格與標題!,但我已經添加了自定義標題,所以這錯過了一切:(

在使用檢索到的數據表設置DataGridView.DataSource屬性后,您可以啟動一個簡單的循環,將列標題文本更改為您的首選項

.....
dt.Columns.RemoveAt(1)
dataGridView1.DataSource = dt

for each cl As DataGridViewColumn in dataGridView1.Columns
    Select Case cl.HeaderText
        Case "FirstColumnName": 
           cl.HeaderText="MyColumn1Name" 
        Case "SecondColumnName": 
           cl.HeaderText="MyColumn2Name"
        case "ThirdColumnName": 
            cl.HeaderText="MyColumn3Name"

        ... and so on for the other columns ....
    End Select
Next

您可以將datagridview的auto generate columns屬性設置為false ,並使用每列的data屬性name屬性將其映射到數據源的列。

示例代碼:

DataGridView1.AutoGenerateColumns = False
Dim index As Integer
index = DataGridView1.Columns.Add("ColumnA", "ColumnA")
DataGridView1.Columns(index).DataPropertyName = "Column1"
index = DataGridView1.Columns.Add("ColumnB", "ColumnB")
DataGridView1.Columns(index).DataPropertyName = "Column2"
index = DataGridView1.Columns.Add("ColumnC", "ColumnC")
DataGridView1.Columns(index).DataPropertyName = "Column3"

Dim dt As New DataTable
Dim ds As New DataSet
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter("SELECT Column1, Column2, Column3, Column4, Column5 FROM Table1 WHERE Condition = true", con)
da.Fill(dt)
DataGridView1.DataSource = dt

這樣你就可以從表中選擇Column1Column5 ,但只有Column1Column3會出現在DGV上; 列標題也是ColumnAColumnBColumnC

您還可以在DataGridView上的設計時指定它,以保存一些代碼並從非常開始的列中定義將出現以及如何; 在設置數據源之前,您只需要設置AutoGenerateColumns = false

設計中的DataPropertyName

暫無
暫無

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

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