![](/img/trans.png)
[英]C# - How to rearrange new HashSet<int> by order of least to greatest
[英]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等。我希望它按從低到高的順序排列。
這意味着在排序過程中將使用文本的詞典順序 。 現在,有兩個原因(我能想到)會導致這種情況。
KEY可能是char / varchar列,並且該順序由數據庫應用。 如果是這種情況,則以下查詢應該起作用:
SELECT PersonalInfo.[ID] FROM PersonalInfo ORDER BY CAST(id AS INT) -- for MS Access maybe: ORDER BY CInt(id)
如果確實解決了問題,則該方案可能應該得到解決!
查詢后可能會進行排序,例如在ComboBox本身中! 確保Sorted為false。
[Sorted]屬性指定ComboBox是否對現有條目進行排序並將新條目添加到列表中的適當排序位置。 您可以使用此屬性來自動對ComboBox中的項目進行排序。排序不區分大小寫,並且按字母升序排列。
..或者可能是兩者的組合! 另外,請確保正在運行/測試的代碼是最新版本並且確實在使用中。
SELECT PersonalInfo.[ID] FROM PersonalInfo order by ID ASC
將ASC放在選擇語句的末尾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.