c# 怎么通过表头字段获得整个datatable的一列的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 怎么通过表头字段获得整个datatable的一列的数据相关的知识,希望对你有一定的参考价值。

比如这种
姓名 性别
李二 男
张三 男

我想通过姓名这个表头获取整个姓名这列的数据 求解答

System.Collections.Generic.List<String> list=new System.Collections.Generic.List<String>();
foreach(DataRow dr in dt.Rows)//dt代表你的那个表

list.add(dr.IsNull["姓名"]?"":dr["姓名"].ToString());//这样datatable中姓名这列的所有数据都存在list中。

不会就不要评论,别误人子弟,当然也不只我上面这种方法。
要点一:从dr[""]拿出来的东东,它的类型是object,如果为空,则类型是DBNull与C#中Null不同。
要点二:只有继承IEnumerable这个接口的对象才可以使用foreach语句。
要点三:list使用的是泛型。
参考技术A 1L思路 是正解
但显然程序有问题 foreach 中的 datarow 对象 item 根本没有用到。。。
接着1L的写的话 括号里面应该是 item[o] (或者item.rows[0] 即取每行的第一列值 语法不记得了 )
另外也有其他的思路。 比如你这个表肯定是存在数据库当中的 为什么非要从listview中取值呢
也可直接写个sql 语句 从 数据库中调出来 select * 姓名 from。。。。 (不过这种方法显然效率比较低 因为他又重新和数据库交互了一次)
取值的方法也有很多中。。。我们刚才用的是每行的第一列 也可以直接用第一列 试试column对象 还可以不用foreach 循环 (效率低) 可以用for 总之方法非常多 主要是考察LZ的 基本功扎实不扎实了 因为基础打的牢的话 想实现什么功能 那是轻而易举的 并且有很多中方法一下子出现 让你选择
希望LZ 好好学习
参考技术B foreach(datarows item in datatable)

dataset_stu.tables["学生表"].rows[0].["学生"]; //这样循环读取一行的每一个列的值

上面循环去读取可以把一列的每个值读取出来,我就是这样实现的。本回答被提问者采纳
参考技术C 用SQL取列最简单了,
dt1有a,b,cd四列,你只查其中你要的那几列
insert into dt2(a, b, c) select a, b, c from dt1
ps:
C#后台只有直接的行筛选,没有列筛选,
如果实在需要的话,如上面同志那样循环。。
还有1种办法。。先复制,然后移除不需要的列。。
DataTable dt2=dt.Copy();
dt2.Columns.Remove("name1");
dt2.Columns.Remove("name2");
参考技术D 用repeater或gridview,编辑列时只编辑一列就行了。

C#如何获取datatable指定行的值

/定义表
DataTable dt = new DataTable();

//填充表

//获得行
DataRow dr1 = dt.Rows.Find("Key");
DataRow dr2 = dt.Rows[0];

//获得列数据
string colString1 = dr1[1].ToString();
string colString2 = dr1["ColumnName"].ToString();
参考技术A 写存储过程,用游标操作数据,C#调用
http://www.yesky.com/imagesnew/software/tsql/ts_fa-fz_90rs.htm
http://zhidao.baidu.com/question/156921455.html
参考技术B e.rows 参考技术C 使用游标

以上是关于c# 怎么通过表头字段获得整个datatable的一列的数据的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform reportViewer报表,动态表头能做么?

C# sqlsever数据库 通过datatable更新数据问题

C# DataTable怎么合计字段

自用 .net C# List集合和DataTable互转,可自定义表头

C# 两个datatable合并取并集减交集请问该段代码怎么写?

SQL分页查询总记录数和查询信息临时表