winforms VB.Net在datagridview中显示数据,并手动设置标题

ha5z0ras  于 7个月前  发布在  .NET
关注(0)|答案(2)|浏览(81)

我有将在datagridview中显示的事务数据,但我在datagridview中手动创建的标题有困难这是我创建并保存到数据库

中的事务
在搜索中,我调用此事务以显示

Private Sub fillform()

    Dim table As New DataTable

    dtproductdetail.DataSource = Nothing

    Try
        cmddetail = New SqlCommand("SELECT AP_T_PR_D.ProdCode, IV_M_Product.ProdName, AP_T_PR_D.QTY, IV_M_PackingType.PackingName
                        FROM IV_M_PackingType RIGHT OUTER JOIN
                        IV_M_Product ON IV_M_PackingType.PackingCode = IV_M_Product.PackingCodeDown RIGHT OUTER JOIN
                        AP_T_PR_D ON IV_M_Product.ProdCode = AP_T_PR_D.ProdCode
                        WHERE AP_T_PR_D.PRNumber = '" & selectedrow.Cells(0).Value.ToString() & "' ", conn)

        Adp = New SqlDataAdapter(cmddetail)
        Adp.Fill(table)
        dtproductdetail.AutoGenerateColumns = True
        dtproductdetail.DataSource = table
        dtproductdetail.Refresh()

    Catch ex As Exception

        MessageBox.Show(ex.Message, "fillform", MessageBoxButtons.OK, MessageBoxIcon.Error)

    End Try
End Sub

字符串
结果


j0pj023g

j0pj023g1#

当窗体加载DataGridView dgvTX并设置样式时,将调用此代码

Private Sub StyleDGV()

    'Set Design of the DataGridView
    dgvTX.DefaultCellStyle.Font = New Font("Times New Roman", 13.0F, FontStyle.Bold)
    dgvTX.ColumnCount = 8
    dgvTX.Columns(0).Width = 50   'ID
    dgvTX.Columns(1).Width = 140  'Date
    dgvTX.Columns(2).Width = 136  'TxType
    dgvTX.Columns(3).Width = 120  'Amt
    dgvTX.Columns(4).Width = 114  'ckNum
    dgvTX.Columns(5).Width = 390  'Desc
    dgvTX.Columns(6).Width = 130  'Bal
    dgvTX.Columns(7).Width = 10  'dumbS
    'To Set Col Header Size Mode = Enabled
    'To Set Col Header Default Cell Styles DO in Properties
    dgvTX.Columns(6).DefaultCellStyle.Format = "c"

    dgvTX.ColumnHeadersHeight = 10 'Sans Serif 'Tahoma
    dgvTX.ColumnHeadersDefaultCellStyle.Font = New Font("Sans Serif", 12.0F, FontStyle.Bold)

    dgvTX.ColumnHeadersDefaultCellStyle.ForeColor = Color.Blue
    dgvTX.DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
    dgvTX.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    dgvTX.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgvTX.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    dgvTX.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

    'dgvTX.Enabled = False 'Prevents Selection of data and scrolling
    'DGV Header Names
    dgvTX.Columns(0).Name = "TID"
    dgvTX.Columns(1).Name = "  Date"
    dgvTX.Columns(2).Name = "  Tx Type"
    dgvTX.Columns(3).Name = "  Amount"
    dgvTX.Columns(4).Name = "  CK Num"
    dgvTX.Columns(5).Name = "Desctiption"
    dgvTX.Columns(6).Name = "  Balance"
    dgvTX.Columns(7).Name = "     "

    dgvTX.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable
    dgvTX.Columns(6).SortMode = DataGridViewColumnSortMode.NotSortable

End Sub

字符串

at0kjp5o

at0kjp5o2#

如果您在设计器中创建了列(我假设这就是您的意思),那么为什么要将AutoGenerateColumns设置为True?如果您手动创建列,那么您不希望自动创建它们。
AutoGenerateColumns设置为False,并确保DataPropertyName为每个网格列设置正确。它应该设置为您希望它绑定到的DataColumnColumnName
实际上,如果你这样做,并且有相同数量的网格和表列,那么AutoGenerateColumns设置为什么并不重要。你的问题是你没有正确设置DataPropertyName,或者可能根本没有为其中一些网格列设置DataPropertyName

相关问题