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'");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决