簡體   English   中英

在C#中按從小到大的順序顯示數據庫中的主鍵

[英]Displaying primary key from database in order from least to greatest in C#

在我的數據庫中,主鍵的順序是從最小到最大(1、2、3等),但是當我將它們加載到組合框中時,它們的顯示順序不正確。 我敢肯定有一個簡單的解決辦法,但是我被卡住了。

    public void fillComboBox()
    {
        try
        {
            // query to pull invoice ids
            string sql = "SELECT PersonalInfo.[ID] FROM PersonalInfo order by ID"; 

            // adapter to send query to database
            OleDbDataAdapter daInvoices = new OleDbDataAdapter(sql, Conn);
            // fill dataset
            daInvoices.Fill(cusNumDS, "PersonalInfo");

            // declare data source for invoice id combo box
            custCB.DataSource = cusNumDS.Tables[0];
            custCB.DisplayMember = "PersonalInfo";
            custCB.ValueMember = "ID";
            // bind data source to combo box
            custCB.DataBindings.Add("SelectedValue", cusNumDS.Tables[0], "ID");
        }
        catch (Exception ex)
        {
            // error message if trouble pulling invoice ids from database
            MessageBox.Show("Trouble pulling invoices from database because: " + ex,
                "Database Error",
                MessageBoxButtons.OK,
                MessageBoxIcon.Error);
        }
    }
SELECT PersonalInfo.[ID] FROM PersonalInfo order by 1 ASC

嘗試這個....

從評論中,你說..

沒有組合框顯示以1開頭的所有內容,例如1、10、11、12 ... 2、20、21、22等。我希望它按從低到高的順序排列。

這意味着在排序過程中將使用文本的詞典順序 現在,有兩個原因(我能想到)會導致這種情況。

  1. KEY可能是char / varchar列,並且該順序由數據庫應用。 如果是這種情況,則以下查詢應該起作用:

     SELECT PersonalInfo.[ID] FROM PersonalInfo ORDER BY CAST(id AS INT) -- for MS Access maybe: ORDER BY CInt(id) 

    如果確實解決了問題,則該方案可能應該得到解決!

  2. 查詢可能會進行排序,例如在ComboBox本身中! 確保Sorted為false。

    [Sorted]屬性指定ComboBox是否對現有條目進行排序並將新條目添加到列表中的適當排序位置。 您可以使用此屬性來自動對ComboBox中的項目進行排序。排序不區分大小寫,並且按字母升序排列。

..或者可能是兩者的組合! 另外,請確保正在運行/測試的代碼是最新版本並且確實在使用中。

SELECT PersonalInfo.[ID] FROM PersonalInfo order by ID ASC

將ASC放在選擇語句的末尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM