程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 個泛型的小例子 Linq查詢解決Combox綁定問題

個泛型的小例子 Linq查詢解決Combox綁定問題

編輯:ASP技巧

自己寫的皮膚為了好看只取了Text沒有Value,現在用這個方法解決一下只有Text取Value值不方便的方式
你只要有一個查詢這個表中所有數據的方法就可以了當然也可以只返回這兩列

代碼
/// <summary>
        /// 根據欄目欄目名稱獲取索引
        /// </summary>
        /// <param name="fiId">欄目名稱</param>
        /// <returns>欄目索引</returns>
        PRivate string GetFunctionNameByName(string Name)
        {
            var result = this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault();
            return result["fiId"].ToString();
        }


GetFunctionInfo是一個查詢表中所有信息的方法

/// <summary>
        /// 根據欄目索引獲取欄目名稱
        /// </summary>
        /// <param name="fiId">欄目索引</param>
        /// <returns>欄目名稱</returns>
        private string GetFunctionNameById(int fiId)
        {
            var result = this._fiTable.AsEnumerable().Where(fi => Convert.ToInt32(fi["fiId"]) == fiId).FirstOrDefault();
            return result["fiName"].ToString();
        }

兩個方法是對應的,感覺這樣查詢方便不少,直接在前台就可以完成,跟數據庫連接的時候只要一個查詢所有的方法就可以了

來解釋一下這一步吧

this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault();

this.objWSM.GetFunctionInfo()是一個查詢所有的方法

AsEnumerable().Where()反回的是一個泛型的行,可以用LinQ表達式查詢

f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim())Linq表達式

F1是新生成的一個行的名稱

f1["fiName"].當然就是這個行裡的列名了,=>後面是條件前面是集合

f1["fiName"].ToString().Trim() == Name.ToString().Trim()就表達在這個行裡有這兩個值相等的,就取出來

FirstOrDefault();表示取第一行的意思

到這裡問題差不多都解決了,只要一個查詢這兩列的方法,在前台寫上這樣兩個方法,每次調用就OK了,不用專門的寫兩個訪問數據庫的方法,感覺還是很方便的。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved