请问C#.net如何更改dataTable的数据类型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问C#.net如何更改dataTable的数据类型?相关的知识,希望对你有一定的参考价值。

将数据赋值到DataTable之后,那些数据都是已经按照数据库中的数据类型设定好的了。
其中有一个数字字段,但是要根据程序重新赋值一些字符串进去这个字段,请问要怎么做呢?
例如是一个字段是要显示年龄的
我希望在赋值给DataTable之后判断一下年龄是否大于150,如果大于150的时候就给这个字段赋值给“错误”,这样就可以直接使用GridView来显示,UI层就不需要涉及到业务了

请问楼主DataTable是你赋值的,不是从数据库读的吗?
那赋值的时候就可以检查值,如果大于150,赋值“错误”;

dt.Columns[年龄的索引].DataType = typeof(String);

可是其他年龄仍然是int 型啊。
这里我就不继续研究了。

因为我认为你的这个思路有问题,UI层完全不涉及到业务,以致使逻辑层需要做大量的工作来服务。

在GridView中,判断年龄再显示是很容易的,消耗的资源也比更改DataTable的Column的类型要多。

如果你是想这个DataTable重用很多次的话,那写个存储过程吧,在SQL里面判断年龄,再输出。

//参考SQL语句,手写,有错误谅解
select username,usersex,user...,case
when userage>150
then '错误'
else userage
end
as
'userage'
from
table

希望楼主解决问题。
参考技术A 其实你在DataTable中加数据时间,判断一下就可以,因为DataTable中的所有数据默认是Object类型。
你只要:
DataRow dr=DataTable.NewRow.
if (dr["列名"]>150)

else
就可以
参考技术B Select
ID,Name,State,StateValue
case
when
state=1
then
'是'
end
as
'否'
from
TableName
如果你要改State的值,就要改State这一列的
DataType.
方法如下:(我没测试,你试试行不行吧)
DataTable
dt=new
DataTable();
dt.Columns[2].DataType=Type.GetType("System.Char");
foreach
(DataRow
dr
in
dt.Rows)

dr[2]
=
(int)dr[2]
==
1
?
'是'
:
'否';
参考技术C luoxk11正解。。。
也可以 Select Convert(varchar(20),age) From 表 然后程序中判断
参考技术D 1楼正解

vb.net 如何将两个datatable合并

我现在有两个datatable 一个叫bill 一个叫 两个表中pRunID字段关联 我想要除了这个字段的其他字段 ,生成一个新的datatable 显示到表格控件中

参考技术A 自己新建一个table 循环两个表数据 取自己需要的放在自己新建的table。 主要对vb不熟 应该有直接的操作的追问

怎么建有没有模式,我小白刚学不会用这个

本回答被提问者和网友采纳
参考技术B 不太清楚哦 参考技术C 你在说什么追问

就是有两个datatable 我想从这两个datatable中按条件提出自己想要的数据放到一个新的datatable中然后绑定到在表格控件上

就是有两个datatable 我想从这两个datatable中按条件提出自己想要的数据放到一个新的datatable中然后绑定到在表格控件上

追答

回复 驻马店K96B :Don't know what you r talking about. Microsoft office?

以上是关于请问C#.net如何更改dataTable的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

给datatable赋值(c#,.net)

c#.net 如何将两个datatable拼接成一个Datatable

c#.net 如何将两个datatable拼接成一个Datatable

c# datagridview 绑定时 改变单元格的值

vb.net 如何将两个datatable合并

ASP.NET把数据查询出来保存在了一个datatable里面了,之后我想把这个datatable的数据导入到access数据库