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();
