2014-06-11 53 views
1

在某些情況下(我相信當使用內連接時)datagridview不能正確表示從SQL查詢填充的列順序。禁用datagridview自動排序VB.NET

例如,我查詢表列順序是:以正確的順序

Select Booking_ID, Client_Name, Room_ID 

雖然SQL返回列,不過datagridview的不同順序自動顯示列:

Room_ID || Booking_ID || Client_Name 

的問題是,如何禁用這個自動的列水平排序,所以datagridview顯示了SQL究竟是怎麼做的?

我正在使用數據源方法來填充數據網格。

SQLDA = New SqlDataAdapter(SqlCmd) 
SQLDataset = New DataSet 
SQLDA.Fill(SQLDataset) 
Form2.DGVData.DataSource = SQLDataset.Tables(0) 

在大多數情況下,這個問題並不存在,datagridview完全像SQL那樣顯示錶。

預先感謝您。

PS:我會張貼圖像,但我不允許,因爲需要10點聲望。

+0

由於問題並不清楚....你怎麼填充的DataGridView?顯示代碼也......如果你使用datasource方法來填充,然後試着在'query'中使用'order by',即'Client_Name'從你的表順序中選擇Booking_ID,Client_Name,Room_ID' –

+0

是的,我正在使用數據源方法。 'SQLDA =新SqlDataAdapter的(SQLCMD) SQLDataset =新的數據集 SQLDA.Fill(SQLDataset) Form2.DGVData.DataSource = SQLDataset.Tables(0)' – user3707554

+0

顯示您的代碼來填充datagridview的編輯你的問題 –

回答

1

簡單,但應該工作:

dgvDataGridView.Columns("Booking_ID").DisplayIndex = 0 
dgvDataGridView.Columns("Client_Name").DisplayIndex = 1 
dgvDataGridView.Columns("Room_ID").DisplayIndex = 2 
'... 
+0

雖然這個解決方案的工作原理 - 這是一個手動聲明過程,最好是強制datagridview不首先執行這個討厭的行爲。 – Ken