簡體   English   中英

ASP.NET中按字母,數字和字符進行的高級排序實現

[英]Advanced sorting implementation in ASP.NET by letters, numbers & characters

我想根據諸如姓名,年齡等許多因素對記錄進行排序...所以到目前為止,我已經完成的工作是創建一個用戶控件來顯示數據庫中的因素(名稱|城市),以便我單擊“名稱”,它將用所有字母加“其他字符”填充一個中繼器,以顯示以數字或其他字符開頭的名稱,當單擊“城市”時,該中繼器將填充我數據庫中所有的城市

我認為城市排序很容易,但是我現在正在研究名稱排序。

現在,我希望在這方面能有所幫助:

1-就我所實現的而言,您是否認為這是一個好的實現?。是否最適合於優化數據庫上的負載


2-我使用此查詢“ SELECT [id],[name] FROM WHERE(名稱類似於@SearchString +'%'),並且從與我要排序的字母相等的查詢字符串中檢索搜索字符串,但是如何返回所有以數字或其他字符開頭的名稱,我的意思是我不想在我的字母列表旁邊列出所有字符和數字的列表:S!

編輯第2點!

我已成功使用name like '[^az]%'這樣的通配符格式name like '[^az]%' ,成功獲得“其他”按鈕,以成功過濾所有不以字母開頭的記錄(數字或特殊字符),希望對其他用戶有所幫助人!


3-我將轉發器放置在Page.aspx中,然后將其綁定到SqlDataReader對象,而不是在文件后面的代碼中使用SqlDataSource,我認為控制打開和關閉連接並按照以下方式處理錯誤會更好我不知道使用SqlDataSource時連接發生了什么!如果我錯了,請糾正我,我花了一個月的時間練習! 無論如何,當我第一次使用SqlDataSource時,我可以輕松地為參數提供默認值,因此不會出現錯誤,因為需要填充顯示轉發器,並且在第一次加載頁面時,它沒有查詢字符串就很干凈,但是我找不到現在的方式是,當我使用一些ADO.NET類以及SqlDataReader對象作為轉發器的數據源時

    <SelectParameters>
    <asp:QueryStringParameter Name="arrange_by_id" QueryStringField="ID" 
        Type="Int32" DefaultValue="1" />
    </SelectParameters>

PS我想到過RegEx可以過濾所有以數字或字符開頭的記錄,就像sql通配符,但是更先進,問題是我不知道是否可以在這種情況下使用它或如何使用它在我的查詢中

這是使用數據讀取器的標准模式,我將使用此模式:

using (SqlConnection cn = new SqlConnection(connectionString))
{
  using (SqlCommand cm = new SqlCommand(commandString, cn))
  {
     using (SqlDataReader dr = cm.ExecuteReader();
     {
        // use dr to read values.
     }
  }
}        

暫無
暫無

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

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