【原創】SQL語句對DataGridView的Columns排序產生的影響

今天在做一個簡單的DataGridView新增、修改、刪除功能時,發現在我增加一個ID欄位后所有的ColumnIndex出現位移,都增加了1,首先說明DataGridView的Columns我已經都綁定了并排序;
問題很明顯是增加了一個欄位出現的問題,我就開始排查:

1、檢查ColumnUI設置,沒有發現問題
IDRowid.png

2、檢查 fr_Main.Designer.cs文件,也沒有發現問題
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.Column1,
            this.Column2,
            this.Column3,
            this.Column4,
            this.Column5,
            this.Column6,
            this.Column7,
            this.Column8,
            this.Column9});


只是發現因為Column9我沒有設置ColumnHeader,少了一個,增加上去還是沒有效果;

3、在我回頭檢查SQL語法時,發現了我增加的欄位ID,放置在select後面,難不成是這個影響了dataGridView的Columns排序
原語句:
            string strSQL = "select ID,trim(mr01) as mr01,trim(mr02) as mr02,trim(mr03) as mr03,mr04,mr05,trim(mr06) as mr06,mr07,mr08 ";

修改后:
            string strSQL = "select trim(mr01) as mr01,trim(mr02) as mr02,trim(mr03) as mr03,mr04,mr05,trim(mr06) as mr06,mr07,mr08,ID ";

此時一切正常;不知道大家有沒有遇到這么簡單的問題,感覺沒有面向dataGridView對象保持一致;
原文地址:https://www.cnblogs.com/godwar/p/1281470.html