[datatable]關於在DataTable中執行DataTable.Select("條件")返回DataTable的解決方法


009-04-26 11:09關於在DataTable中執行DataTable.Select("條件")返回DataTable的解決方法
在實際編程工程中,常常遇到這樣的情況:DataTable並不是數據庫中的,或者DataTable尚未寫到數據庫,或者從數據庫中讀出的DataTable已經在本地被改動,又沒有寫回數據庫(可能還要作其他改動),在這些情況下,其實只要用.NET類庫中提供的DataView類的強大功能(主要是用它的RowFilter屬性),就能方便地解決這類查詢問題。
常有網友在網上詢問怎么在DataTable中執行DataTable.Select("條件")返回DataTable,今天我在這里給個解決方法給大家參考:
代碼如下

 /**//// <summary>
        /// 執行DataTable中的查詢返回新的DataTable
        /// </summary>
        /// <param name="dt">源數據DataTable</param>
        /// <param name="condition">查詢條件</param>
        /// <returns></returns>
        private DataTable GetNewDataTable(DataTable dt,string condition)
        {            
             DataTable newdt = new DataTable(); 
             newdt=dt.Clone();
             DataRow[] dr = dt.Select(condition); 
            for(int i=0;i<dr.Length;i++) 
            { 
                 newdt.ImportRow((DataRow)dr[i]);
             } 
            return newdt;//返回的查詢結果
         }

例:DataRow dr=dt.Select(學號=108)[0]; 
      string sss = dr[姓名].ToString(); 
例:DataRow[] rows = dt.Select(學號='108');
if(rows.Length   0)
{
string sss = rows[0][姓名].ToString();
}
例:Select后,框架不會變的,Select只是篩選記錄,不會改變列。 
  
string name=string.Empty; 
DataRow[] rows = dt.Select(學號=108); 
if (rows!=null   rows.Length0) 
   name=rows[0][姓名].ToString();//第0行即返回值的第一行,即返回結果
例:string sss = dt.Select( 姓名= from Tables[0] where [學號]=108).ToString(); 
  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM