DataTable与Linq相互转换方法
来源:互联网 发布:制作邀请函的软件 编辑:程序博客网 时间:2024/05/21 14:08
DataTable通过dt.AsEnumerable()方法转换可用Linq查询 。 DataTable newDt = query1.CopyToDataTable( );
var query1 = from stu in dtStu.AsEnumerable( ) from score in dtScore.AsEnumerable( ) where stu.Field<int>("ScoreID") == score.Field<int>("ScoreID") where (int)stu["Age"] > 20 select stu; //通过CopyToDataTable()方法创建新的副本 DataTable newDt = query1.CopyToDataTable<DataRow>( );
namespace UseCopyToTable { class Program { static void Main(string[] args) { UseCopyToDTSimple( ); UseSetField( ); } static DataSet BuildDataSet( ) { //创建Students数据集 DataSet ds = new DataSet("Students"); //创建Students数据表,并添加到数据集 //Students数据表包含学生信息 DataTable dtStu = new DataTable("Students"); ds.Tables.Add(dtStu); //添加学生信息记录的列信息 dtStu.Columns.AddRange(new DataColumn[]{ new DataColumn("Name", Type.GetType("System.String")), new DataColumn("XingBie", Type.GetType("System.String")), new DataColumn("Age", Type.GetType("System.Int32")), new DataColumn("ScoreID", Type.GetType("System.Int32")), }); //添加学生信息的行信息 dtStu.Rows.Add("张三", "男", 20, 1); dtStu.Rows.Add("李四", "男", 19, 2); dtStu.Rows.Add("王霞", "女", 21, 3); dtStu.Rows.Add("赵敏", "女", 22, 4); dtStu.Rows.Add("吴安", "男", 18, 5); //创建Scores数据表,并添加到数据集 //Scores数据表包含学生成绩记录 DataTable dtScore = new DataTable("Scores"); ds.Tables.Add(dtScore); //添加成绩记录的列信息 dtScore.Columns.AddRange(new DataColumn[]{ new DataColumn("ScoreID", Type.GetType("System.Int32")), new DataColumn("Math", Type.GetType("System.Int32")), new DataColumn("Chinese", Type.GetType("System.Int32")), new DataColumn("English", Type.GetType("System.Int32")), }); //添加学生成绩记录 dtScore.Rows.Add(1, 80, 75, 78); dtScore.Rows.Add(3, 88, 80, 60); dtScore.Rows.Add(4, 75, 90, 80); dtScore.Rows.Add(5, 59, 80, 75); //返回数据集 return ds; } static void UseCopyToDTSimple( ) { //获取数据集和要进行查询的数据表 DataSet ds = BuildDataSet( ); DataTable dtStu = ds.Tables["Students"]; DataTable dtScore = ds.Tables["Scores"]; //查询query1年龄大于20且具有成绩的学生 var query1 = from stu in dtStu.AsEnumerable( ) from score in dtScore.AsEnumerable( ) where stu.Field<int>("ScoreID") == score.Field<int>("ScoreID") where (int)stu["Age"] > 20 select stu; //通过CopyToDataTable()方法创建新的副本 DataTable newDt = query1.CopyToDataTable<DataRow>( ); //打印副本的信息 System.Console.WriteLine("学生列表:"); foreach (var item in newDt.AsEnumerable()) { System.Console.WriteLine("姓名:{0}, 性别:{1}, 年龄:{2}", item["Name"], item["XingBie"], item["Age"]); } } static void UseSetField( ) { //获取数据集和要进行查询的数据表 DataSet ds = BuildDataSet( ); DataTable dtStu = ds.Tables["Students"]; //将所有学生的年龄都增加2岁 foreach (var row in dtStu.AsEnumerable()) { int age = row.Field<int>("Age"); row.SetField<int>("Age", age + 2); } //打印新的学生信息 System.Console.WriteLine("学生列表:"); foreach (var item in dtStu.AsEnumerable( )) { System.Console.WriteLine("姓名:{0}, 性别:{1}, 年龄:{2}", item["Name"], item["XingBie"], item["Age"]); } } } }
0 0
- DataTable与Linq相互转换方法
- DataTable与Linq相互转换方法
- DataTable与Linq相互转换方法
- DataTable与Linq相互转换
- DataTable与Linq相互转换
- Xml与DataTable相互转换方法
- Xml与DataTable相互转换方法
- json与DataTable相互转换
- DataTable与数组相互转换
- json与datatable的相互转换
- DataTable 与 实体之间相互转换
- xml与datatable间相互转换
- List<T>与DataTable相互转换
- C#中List与DataTable相互转换
- 用Linq和Dataview筛选查询DataTable数据,DataTable和List相互转换
- C# DataTable 和List之间相互转换的方法[转]
- C# DataTable 和List之间相互转换的方法
- C# DataTable 和List之间相互转换的方法
- Ruby 操作数据库,CSV文件和txt文件
- Leetcode: Subsets
- ASP实现在WEB中显示电子表格数据 显示数据及生成HTML表格
- sql*plus
- LinQ实现DataTable不定行转列 行列转换
- DataTable与Linq相互转换方法
- Android之Adapter用法总结
- MATLAB和MFC混编
- [Leetcode] 24. Swap Nodes in Pairs
- 超级实用且不花哨的js代码大全
- linux基础知识2-vi, 磁盘管理, 用户管理
- LeetCode 19 Remove Nth Node From End of List
- java 泛型详解
- ios新纪元