存在於內存中的虛擬表DataTable,綁定在數據顯示控件後,若是想在再檢索其中某些信息,能夠利用DataTable.Select方法進行檢索,避免了重複的讀取數據庫。Select方法共有4個重載方法。數據庫
先建立一個DataTable:數組
DataTable dt = new DataTable("Student");//DataTable對象,表名時Student //開始增長列頭 dt.Columns.Add("編號",typeof(Int32)); dt.Columns.Add("姓名",typeof(String)); dt.Columns.Add("成績",typeof(String)); //開始增長行數據 DataRow row = dt.NewRow(); row[0] = 1; row[1] = "張"; row[2] = "98"; dt.Rows.Add(row);//向DataTable增長第一行記錄 row = dt.NewRow(); row[0] = 2; row[1] = "李"; row[2] = "78"; dt.Rows.Add(row);//向DataTable增長第二行記錄 //設置DataTable的主鍵 dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };
利用DataTable.Select()獲取全部DataRow行對象數組:spa
DataRow[] rows = dt.Select(); /*row如今就至關一個二維數組 * [1],[張],[98] * [2],[李],[78] * 獲取數據和二維數組的取值是類似的 */ string name1 = rows[0][1].ToString();//name1="張" string name2 = rows[1][1].ToString();//name2="李"
利用DataTable.Select(String)獲取指定檢索條件的DataRow行對象數組:對象
DataRow[] rows = dt.Select("姓名='張'"); // [1],[張],[98] string id = rows[0][0].ToString();//id=1 string name = rows[0][1].ToString();//name1 = "張" string score = rows[0][2].ToString();//score="98"
說明:這裏Select方法中的檢索字符串至關於T-SQL中的where關鍵字後的檢索字符串,語法是同樣的。內存
DataRow[] rows1 = dt.Select("姓名='張' and 編號=1"); DataRow[] rows2 = dt.Select("姓名='張' or 成績>'60'");