请问C#.net如何更改dataTable的数据类型?
将数据赋值到DataTable之后,那些数据都是已经按照数据库中的数据类型设定好的了。其中有一个数字字段,但是要根据程序重新赋值一些字符串进去这个字段,请问要怎么做呢?例...
将数据赋值到DataTable之后,那些数据都是已经按照数据库中的数据类型设定好的了。
其中有一个数字字段,但是要根据程序重新赋值一些字符串进去这个字段,请问要怎么做呢?
例如是一个字段是要显示年龄的
我希望在赋值给DataTable之后判断一下年龄是否大于150,如果大于150的时候就给这个字段赋值给“错误”,这样就可以直接使用GridView来显示,UI层就不需要涉及到业务了 展开
其中有一个数字字段,但是要根据程序重新赋值一些字符串进去这个字段,请问要怎么做呢?
例如是一个字段是要显示年龄的
我希望在赋值给DataTable之后判断一下年龄是否大于150,如果大于150的时候就给这个字段赋值给“错误”,这样就可以直接使用GridView来显示,UI层就不需要涉及到业务了 展开
6个回答
展开全部
请问楼主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
希望楼主解决问题。
那赋值的时候就可以检查值,如果大于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
{}就可以
你只要:
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
?
'是'
:
'否';
}
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 表 然后程序中判断
也可以 Select Convert(varchar(20),age) From 表 然后程序中判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询