2017-09-17 39 views
-1

是否有可能从8个不同的表中显示选定的数据到Visual Basic中的datagridview?我正在使用MS SQL。我有总统1张,副总统1张,秘书1张,掌柜1张。 1个审计员表,1个业务经理表。每个表格有五行ID,PARTY LIST,NAME,GRADE和VoteCount。来自8个不同表格的Datagridview内容? Vb.net MS SQL

我需要显示给datagridview的是派对列表,pres。姓名,副。 PRES。名字,秒。名字,tre。名字等。

我想知道是否有可能为datagridview。

谢谢。

+0

可以绑定一个'DataTable'到'DataGridView'。您需要决定如何填充“DataTable”。如果您想要在数据库中连接8个表的查询来完成此操作,那么请尽量采取这种做法。 – jmcilhinney

+0

听起来像一个错误的数据库设计。 “候选人”的一张桌子上有一个字段,表明他们正在跑步的位置是你需要的。数据库模式是关于*关系* – Plutonix

回答

0

您需要手动添加列。我从我的一个应用程序中获取了这个示例代码。它从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