有没有办法在使用JOIN子句时停止列的自动排序

问题描述 投票:0回答:1

我正在使用来自不同数据表的大量数据设置此datagridview,因此我使用了JOIN。但是,datagridview似乎按表的顺序显示列。

这是我的代码:

 Using conn As New MySqlConnection(connString)
            conn.Open()
            Using cmd As New MySqlCommand("SELECT * FROM tblclientprofile LEFT JOIN tblbusinessinfo ON tblbusinessinfo.B_IdNo = tblclientprofile.IdNo 
                                            LEFT JOIN tblownerprofile ON tblownerprofile.O_IdNo = tblbusinessinfo.B_IdNo
                                            LEFT JOIN tblbusinessprofile ON tblbusinessprofile.BP_IdNo = tblownerprofile.O_IdNo
                                            LEFT JOIN tblbusinessoperations ON tblbusinessoperations.BO_IdNo = tblbusinessprofile.BP_IdNo
                                            LEFT JOIN tblbfs ON tblbfs.BF_IdNo = tblbusinessoperations.BO_IdNo
                                            LEFT JOIN tblcapitalstructure ON tblcapitalstructure.IdNo = tblbfs.BF_IdNo
                                            LEFT JOIN tblassetsize ON tblassetsize.IdNo = tblcapitalstructure.IdNo
                                            LEFT JOIN tblsaleshistory ON tblsaleshistory.IdNo = tblassetsize.IdNo
                                            LEFT JOIN tbldomesticmarket ON tbldomesticmarket.IdNo = tblsaleshistory.IdNo
                                            LEFT JOIN tblexportmarket ON tblexportmarket.IdNo = tbldomesticmarket.IdNo
                                            LEFT JOIN tblprodservline ON tblprodservline.IdNo = tblexportmarket.IdNo
                                            ", conn)
                With cmd
                    .CommandType = CommandType.Text
                End With
                Using da As New MySqlDataAdapter
                    da.SelectCommand = cmd
                    Using dt As New DataTable
                        da.Fill(dt)
                        dgv2.DataSource = dt
                    End Using
                End Using
            End Using
        End Using

tblclientprofile具有以下字段:IdNo,Status,Name,Position等.tblbusinessinfo具有以下字段:BusinessRegNo,BusinessName,BusinessType等。

datagridview的结果依次为IdNo,Status,Name,Position,BusinessRegNo,BusinessName,BusinessType。

我想要的是按以下顺序显示:IdNo,Name,Position,BusinessRegNo,BusinessName,BusinessType,Status

vb.net
1个回答
0
投票

我对列失序的简单解决方案是添加这个循环,将DisplayIndex设置为Index。在你的电话dgv2.DataSource = dt之后把这个循环放好

For Each col As DataGridViewColumn In dgv2.Columns 
    col.DisplayIndex = col.Index
Next

Index在添加时分配给每个列。我不确定为什么DisplayIndex会出现故障,但上面的脚本会修复它。

另外,我想指出这与SQL无关。这是DataGridView中发生的事情的结果。话虽如此,您仍然应该选择列而不是使用*。

© www.soinside.com 2019 - 2024. All rights reserved.