DataTabel 与DataView之间的转化
DataTable转为DataView,或者反之转化,
使用的是文档/试图模型,DataTable可以有多个视图,这样就可以不需要借助List类型对dataTable数据进行筛选或者排序
//DataRow row = table.NewRow(); //row.ItemArray = new object[] { 1, "Fruit", "Apple", 14 }; //table.Rows.Add(row); //row = table.NewRow(); //row.ItemArray = new object[] { 2, "Fruit", "Orange", 27 }; //table.Rows.Add(row);
DataTable dt = new DataTable(); dt.Columns.Add("Id",typeof(int));System.Type.GetType("System.Int32") dt.Columns.Add("Name",typeof(string)); dt.Columns.Add("Age", typeof(int)); dt.Columns.Add("Address",typeof(string)); { DataRow dr = dt.NewRow(); dr["Id"] = 1; dr["Name"] = "张三"; dr["Age"] = "13"; dr["Address"] = "杭州"; dt.Rows.Add(dr); } { DataRow dr = dt.NewRow(); dr["Id"] = 2; dr["Name"] = "李四"; dr["Age"] = "20"; dr["Address"] = "杭州"; dt.Rows.Add(dr); } { DataRow dr = dt.NewRow(); dr["Id"] = 3; dr["Name"] = "王五"; dr["Age"] = "60"; dr["Address"] = "杭州"; dt.Rows.Add(dr); } { DataRow dr = dt.NewRow(); dr["Id"] = 4; dr["Name"] = "赵六1"; dr["Age"] = "37"; dr["Address"] = "杭州"; dt.Rows.Add(dr); } //dataTable 转dataView的集中方式 //DataView dv1 = new DataView(dt); //DataView dv1 = dt.AsDataView(); //DataView dv1 = new DataView(); dv1.Table = dt; DataView dv = dt.DefaultView; //多条件筛选 若是字段与条件的类型不一致会报错 //dv.RowFilter = "Age >30"; //dv.RowFilter = "Name like '%赵六%'"; //dv.RowFilter = "Name='赵六'"; //排序 //dv.Sort = "Age desc"; //dv.Sort = "Age asc"; //根据字段长度控制显示 //dv.RowFilter = "Len(Name)>2";
//dataView转为dataTable的时候 可以指定显示的字段
//DataTable dt1= dv.ToTable(true,new string[] {"Id","Name" });
//DataTable dd2 = dv.ToTable(true,"Id","Name","Age");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现