【问题标题】:Datagridview contents from 8 different tables? Vb.net MS SQL来自 8 个不同表的 Datagridview 内容? VB.NET MS SQL
【发布时间】:2017-09-17 13:21:40
【问题描述】:

是否可以在 Visual Basic 中将 8 个不同表中的选定数据显示到 datagridview 中?我正在使用 MS SQL。我有一张总裁桌,一张副总裁桌,一张秘书桌,一张司库桌。审计员一张表,业务经理一张表。每个表有五行 ID、PARTY LIST、NAME、GRADE 和 VoteCount。

我需要向 datagridview 显示的是派对列表,pres。名字,副。新闻名称,秒。名字,特雷。名字等等。

我想知道datagridview是否可以。

谢谢。

【问题讨论】:

  • 您可以将一个DataTable 绑定到一个DataGridView。由您决定如何填充 DataTable。如果您想使用连接数据库中 8 个表的查询来执行此操作,那么请务必这样做。
  • 听起来像是一个错误的数据库设计。 Candidate 的一张表,其中一个字段指示他们正在运行的位置,这就是您所需要的。数据库模式是关于关系

标签: sql-server vb.net datagridview


【解决方案1】:

您需要手动添加列。我从我的一个应用程序中获取了这个示例代码。它从 SQL 中查询每一列的格式并将其存储在 xgrid1 和 xgrid2 中。一个是列的名称,另一个是显示名称。 xgrid3 是我的列的大小,xgrid4 是列的对齐方式。使用任何适合你的东西。设置好列后,只需运行查询并使用循环将行添加到网格中。您不能在您的情况下使用数据源。

用它来设置你的网格

DG_Clients.Columns.Clear()
        DG_Clients.RowHeadersVisible = False

        For xcount = 0 To xgrid1.Length - 1
            DG_Clients.Columns.Add(xgrid2(xcount), xgrid1(xcount))
            DG_Clients.Columns(DG_Clients.Columns.Count - 1).Width = xgrid3(xcount)
            Select Case xgrid4(xcount)
                Case "L"
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
                Case "R"
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
                Case "C"
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
                    DG_Clients.Columns(DG_Clients.Columns.Count - 1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

            End Select
        Next

并用它来添加它

 Dim xRow As DataRow
        Dim xProvince As String
        For Each dRow As DataRow In DBAcc.DBDT.Rows
            Dim xlist(DG_Clients.Columns.Count - 1) As String

            For xcount = 0 To xgrid1.Length - 1
                Select Case xgrid2(xcount)
                    Case "Sex"
                        If dRow(xgrid2(xcount)) = 0 Then xlist(xcount) = "Male" Else xlist(xcount) = "Female"
                    Case "Province"
                        Select Case dRow(xgrid2(xcount))
                            Case 0
                                xProvince = "QC"
                            Case 1
                                xProvince = "On"
                            Case 2
                                xProvince = "NS"
                            Case 3
                                xProvince = "PEI"
                            Case 4
                                xProvince = "NF"
                            Case 5
                                xProvince = "MB"
                            Case 6
                                xProvince = "SK"
                            Case 7
                                xProvince = "AB"
                            Case 8
                                xProvince = "BC"
                            Case 9
                                xProvince = "NU"
                        End Select
                        xlist(xcount) = xProvince
                    Case Else
                        xlist(xcount) = dRow(xgrid2(xcount))
                End Select
            Next

            DG_Clients.Rows.Add(xlist)
        Next

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2016-03-17
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多