C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法!

码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
最终实现下图的效果:


C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法!

  • C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法!
  • 前言
  • 一、几者的关系
  • 二、声明以及初始化
    • 1、DataTable的创建
    • 2、DataColumn的创建
    • 3、DataRow的创建
    • 4、DataSet的创建
    • 5、数据查询
      • ①遍历DataSet中所有DataTable
      • ②遍历DataTable中所有DataColumn
      • ③遍历DataTable中所有DataRow数据
    • 6、完整代码
  • 总结

前言

提示:以下是本篇文章正文内容,下面案例可供参考

一、几者的关系

几者的关系如下所示:

DataSet里可以放多个DataTable,,其次就是DataTable里是由两部分组成的,一个是DataColumn,一个是DataRow。可以将其想像成为一个Excel文件,Dataset就是每页excel,dataTable就是每页内存储的数据,datarow和dataColumn就当成是数据的行和列。所以我们操作其数据可以根据表头也可以根据行和列的索引进行相关操作。

二、声明以及初始化

1、DataTable的创建

代码如下:

//1、首先创建一个DataTable对象 表名为MytableDataTable dt = new DataTable("Mytable");

2、DataColumn的创建

代码如下:

 //2、创建四列并添加到DataTable的列中 列名分别是 姓名 性别 年龄 兴趣dt.Columns.Add(new DataColumn("姓名"));dt.Columns.Add(new DataColumn("性别"));dt.Columns.Add(new DataColumn("年龄"));dt.Columns.Add(new DataColumn("兴趣"));

F12进入到DataColumn的构造函数可以看到小括号内的字符串就是列名称

3、DataRow的创建

代码如下:

//3、下面我们需要往这个表里添加一些数据for (int i = 0; i < 10; i++){DataRow dr = dt.NewRow();//分别给各列名如下的行赋值dr["姓名"] = "张三"+i;dr["性别"] = "男";dr["年龄"] = 20+i;dr["兴趣"] = "打篮球" + i;//将此条记录加入到dt中去dt.Rows.Add(dr);}

注意这里要用到DataTable.NewRow()方法来创建一个新的实例。

4、DataSet的创建

代码如下:

//4、DataSet 声明以及初始化://将这个DataTable加入到DataSet中去DataSet ds = new DataSet();ds.Tables.Add(dt);

5、数据查询

①遍历DataSet中所有DataTable

foreach (var item in ds.Tables )//遍历DataSet中的所有Datatable
{DataTable dt0 = item as DataTable;
}

②遍历DataTable中所有DataColumn

//遍历Datatable中所有列并打印每一行的表头
foreach (var itemColumns in dt0.Columns)
{//这里要用到as表达式或者强制类型转换,否则的话没法找到其ColumnName属性。
Console.Write((itemColumns as DataColumn).ColumnName+"||");
...
}

③遍历DataTable中所有DataRow数据

//第一种方法  采用扩展方法 .Field的方式
Console.WriteLine("-----方法1:采用扩展方法的方式----------");
foreach (var itemRows in dt0.Rows)
{Console.Write((itemRows as DataRow).Field<string>("姓名")+"  ");
Console.Write((itemRows as DataRow).Field<string>("性别") + " ");
Console.Write((itemRows as DataRow).Field<string>("年龄") + " ");
Console.WriteLine((itemRows as DataRow).Field<string>("兴趣") +" ");
...
}Console.WriteLine("-----方法2:采用查询索引的方式----------");
for (int i = 0; i < dt0.Rows.Count; i++)
{Console.WriteLine("{0}{1}{2}{3}", dt0.Rows[i][0], dt0.Rows[i][1], dt0.Rows[i][2], dt0.Rows[i][3]);
}

这里用到了DataRow的扩展方法.Field,可以F12进去看他的定义如下:
其中方法一我采用这种格式: Field<返回值类型>(“列名称”),方法二类似数据库查表的方式一样

6、完整代码

代码量不多就不上传git了拷贝过去就能用了,完整代码如下:

  //1、首先创建一个DataTable对象 表名为MytableDataTable dt = new DataTable("Mytable");//2、创建四列并添加到DataTable的列中 列名分别是 姓名 性别 年龄 兴趣dt.Columns.Add(new DataColumn("姓名"));dt.Columns.Add(new DataColumn("性别"));dt.Columns.Add(new DataColumn("年龄"));dt.Columns.Add(new DataColumn("兴趣"));//3、下面我们需要往这个表里添加一些数据for (int i = 0; i < 10; i++){DataRow dr = dt.NewRow();//分别给各列名如下的赋值dr["姓名"] = "张三"+i;dr["性别"] = "男";dr["年龄"] = 20+i;dr["兴趣"] = "打篮球" + i;//将此条记录加入到dt中去dt.Rows.Add(dr);}//将这个DataTable加入到DataSet中去DataSet ds = new DataSet();ds.Tables.Add(dt);foreach (var item in ds.Tables )//遍历DataSet中的所有Datatable{DataTable dt0 = item as DataTable;foreach (var itemColumns in dt0.Columns)//遍历Datatable中所有列并打印每一行的表头{Console.Write((itemColumns as DataColumn).ColumnName+"||");}Console.WriteLine();//第一种方法  采用扩展方法 .Field的方式Console.WriteLine("--------------采用扩展方法的方式----------------");foreach (var itemRows in dt0.Rows){Console.Write((itemRows as DataRow).Field<string>("姓名")+"  ");Console.Write((itemRows as DataRow).Field<string>("性别") + "   ");Console.Write((itemRows as DataRow).Field<string>("年龄") + "   ");Console.WriteLine((itemRows as DataRow).Field<string>("兴趣") + "   ");}Console.WriteLine("--------------采用查询索引的方式----------------");for (int i = 0; i < dt0.Rows.Count; i++){Console.WriteLine("{0}  {1}   {2}   {3}", dt0.Rows[i][0], dt0.Rows[i][1], dt0.Rows[i ][2], dt0.Rows[i][3]);}}Console.ReadKey();}

总结

以上就是今天要讲的内容,简单介绍了DataSet、DataTable、DataColumn、DataRow的使用。

码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。

C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法相关推荐

  1. 三分钟教你快速选择机器视觉传感器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 六招教您合理选择机器视觉传感器 传感器是一种 ...

  2. 元件怎么反转_电气图纸怎么看?三分钟教你学会看懂,受用一生

    图纸一般用于设计方面,设计师绘制出图纸,我们再根据图纸进行操作,尤其是电气图纸,上面有很多符号,很难看懂,下面通过三分钟教你学会看懂电气图纸. 一.什么是电气图 用电气图形符号.带注释的围框或简化外形 ...

  3. python语言表白超炫图形_经验分享 篇二:三分钟教你用Excel制作各种尺寸、底色的证件照...

    经验分享 篇二:三分钟教你用Excel制作各种尺寸.底色的证件照 2018-12-29 07:00:00 654点赞 7174收藏 245评论 一.前言 继上一篇用PPT制作了证件照以后 有的值友反应 ...

  4. 入门必看 | 三分钟教你学会操作台式万用表

    入门必看 | 三分钟教你学会操作台式万用表 入门必看 | 三分钟教你学会操作台式万用表

  5. python程序加密_三分钟教你python自动化加密Word

    还在忧虑周五下班前,老板吩咐要给客户加密200个文件吗?工作到凌晨2点,还要把当日完成的10个文件加密,让人很发狂啊.想到一份份的文档要挨个打开并加密,就让人有一种想要die掉的996即视感. 三分钟 ...

  6. python什么工作好找女朋友_程序员,三分钟教你用 Python 帮你找一个女朋友

    原标题:程序员,三分钟教你用 Python 帮你找一个女朋友 什么是单身税? 单身税的历史可以追溯到2015年韩国的新政, 低生育率逼得韩国产生了这一政策. 现在我国也要实行这一政策, 很多单身狗就接 ...

  7. 三分钟教你读懂本票是什么

    三分钟教你读懂本票是什么 本票 1.本票定义及特点 本票(Promissory Note)是一项书面的无条件的支付承诺,由一个人作成,并交给另一人,经制票人签名承诺,即期或定期或在可以确定的将来时间, ...

  8. php三极管驱动蜂鸣器计算,三分钟教你如何用三极管驱动蜂鸣器

    原标题:三分钟教你如何用三极管驱动蜂鸣器 背景知识 NPN型三极管,由三块半导体构成,其中两块N型和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧.三极管是电子电路中最重要的器件,它最主要 ...

  9. 真假屏幕测试软件,别再担心电视屏幕问题了!三分钟教你在家自己检测

    原标题:别再担心电视屏幕问题了!三分钟教你在家自己检测 在很多用户的概念中,买电视最重要的就是要看电视屏幕好不好,一般来说,屏幕越好,那么电视所表现出来的画质也会更出色.然而在选购了新的电视机后,我们 ...

最新文章

  1. oracle基本实用技术
  2. 工业用微型计算机笔记(5)-指令系统(1)
  3. Spring Cloud原理详解
  4. apache 设置session超时时间_深入分析 Session 和 Cookie,看这篇就对了
  5. ios html字符转义字符串,iOS HTML特殊字符转译
  6. Python BeautifuSoup4 爬表格
  7. struts2面试题大全含答案
  8. duilib列表list使用方法
  9. dateutil模块
  10. 常用单片机和开发板的引脚功能图
  11. html如何设置打印分页打印出来,网页中如何用 CSS 设置打印分页符
  12. 重温C语言三之----指针的认识
  13. 背后的力量 | 升级电子病历基础架构 华云数据助力华中科技大学同济医学院附属协和医院打造就医新模式
  14. 如何用PS去掉照片中的路人
  15. python联机麻将_python麻将和牌算法
  16. 记录一次es7.8.1报错解决过程 unknown key [column] for create index
  17. 抖音视频限流了怎么解决,如何才能解决限流问题
  18. 百度音乐api+c语言,百度音乐接口api - osc_d87glhzv的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. HTTPS Cryptology Introduction
  20. 喝了38年的雪碧变样了!中国首发上市,白标原味、黑标无糖,加入两款新品 | 美通社头条...

热门文章

  1. Whale帷幄 - saas营销推广策划 saas营销解决方案
  2. NKOI 3124 珍珠吊坠
  3. 在ros使用for auto报错
  4. 电感(29)之铁氧体磁珠工作原理透彻详解
  5. 泰坦服务器装系统,机械革命 深海泰坦X6Ti U盘装系统win10教程
  6. shell编程4-shell嵌套循环及随机数
  7. 如何实现一个SQL解析器
  8. Revit2022版插件 新版本2.0 | 史诗级的更新
  9. 橙色云CDS|研发设计产业互联网新业态
  10. CentOS7安装git——IUS方式