C#_从DataTable中检索信息
C#_从DataTable中检索信息
存在于内存中的虚拟表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行对象数组:
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'");