请问楼主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
希望楼主解决问题。
其实你在DataTable中加数据时间,判断一下就可以,因为DataTable中的所有数据默认是Object类型。
你只要:
DataRow dr=DataTable.NewRow.
if (dr["列名"]>150)
{}
else
{}就可以
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
?
'是'
:
'否';
}
luoxk11正解。。。
也可以 Select Convert(varchar(20),age) From 表 然后程序中判断
1楼正解