首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.net 数据替换如何用!

2012-12-15 
.net 数据替换怎么用!!!从数据库读出来的数据,如图上面的数据时来源于多张表。用行转列 计算出来的一个月(0

.net 数据替换怎么用!!!
从数据库读出来的数据,如图

上面的数据时来源于多张表。用行转列 计算出来的一个月(01--31)的数据,中间是int 类型,
现在可以放在dataset中,
1,2,3,4 表示 四种状态,在数据中有一个状态表对应的 中文意义。
怎么把那些数字替换为相应的文字说明,我要导出到excle 里面


[最优解释]
你要先知道1234的中文在哪个表里,然后SQL语句开始的位置select * 换成 select [姓名],[01],[02],[03],…… 
把中间需要换成中文的字段的用case语句代替,比如


 select [姓名],[01],(case 02 when 1 then '啊' when 2 then '不' when 3 then '成' when 4 then '的') as ['02'],……  from ( select  datepart(DD,Duty.date) as daydate,DutyPeople.name as '姓名',DutyState.ID as statename
 FROM Duty,DutyDepart,DutyPeople,DutyState
 where Duty.peopleID=DutyPeoPle.ID and Duty.stateID=DutyState.ID and DutyPeoPle.DepartID=DutyDepart.ID
 --and CONVERT(varchar(7), date, 121)='2012-11'
 ) qty pivot( sum(statename) for daydate in( 
 [01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31] ) ) as  pvt

[其他解释]
在你的那个子查询里,连接你的状态表,用文字当作statename不用Id
我看你的那个dutyState可能就是状态表,把dutyState.Id as statename改成dutyState.name as statename


[其他解释]
定义个字典,数字为key,value为中文,你根据数字找字典不就行了,还可以在数据库中定义一个表,去表中查询,或者sql查询时,就两表联合或用when case语句专为中文
[其他解释]
sql帮助查 CASE 语句

[其他解释]
写个视图关联中文含义表。

或者你把当前读入取的数据写成一个视图A ,然后在创建视图B,把视图A当作一个表写在B里面,然后在写个关联,
看起来比较麻烦,能写成一个试图会比较好点。
[其他解释]
加状态对应表,然后进行连接查询。
[其他解释]
在导出前,先替换掉数字
[其他解释]
替换后生成一个表,再导出这个表,思路是这样的,看看
[其他解释]
我这里举个简单的列子:就0和1,转女和男吧!
在数据库中存性别的时候,存的数据可能是0和1,但是在DataSet或GridView控件中显示的时候,想让它显示出男和女,该如何实现呢? 
 
你可以在数据库中用SQL直接实现
 select 
  (case sex when 0 then '男' else '女' end) sex
 ,name
 from 
  studinfo
 
也可以通过设置GridView模板列来实现

<asp:TemplateField HeaderText="姓别">
          <ItemTemplate>DataBinder.Eval(Container, "DataItem.F_STATUS_NAME").ToString()=="0"?"男":女;                                                              </ItemTemplate>
</asp:TemplateField>

[其他解释]
查询出table之后,进行处理,就是在BLL层,对分类数字,转成字符后,再绑定,
[其他解释]
附上 sql 查询语句 


求大虾 帮助

select * from ( select  datepart(DD,Duty.date) as daydate,DutyPeople.name as '姓名',DutyState.ID as statename
FROM Duty,DutyDepart,DutyPeople,DutyState
where Duty.peopleID=DutyPeoPle.ID and Duty.stateID=DutyState.ID and DutyPeoPle.DepartID=DutyDepart.ID
--and CONVERT(varchar(7), date, 121)='2012-11'
) qty pivot( sum(statename) for daydate in( 
[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31] ) ) as  pvt


[其他解释]
三楼的 没用,我 是举例 有四种状态 ;以后可能会添加啊 什么的,所以不能 一一举例出来。

我的意思是 让这个数据要对应到表里面去
[其他解释]
对于意思菜鸟 我不解释,元素查询,处理后图楼主 我所发,再次怎么处理 ,就没人给出答案,
尽是坑人的回答,有能耐的就 贴出来。别放下半句话,就跑了。


[其他解释]

引用:
你要先知道1234的中文在哪个表里,然后SQL语句开始的位置select * 换成 select [姓名],[01],[02],[03],…… 
把中间需要换成中文的字段的用case语句代替,比如
SQL code?1234567 select [姓名],[01],(case 02 when 1 then '啊' when 2 then '不' when 3 then……


case 02 应该是 case [02]
[其他解释]
引用:
定义个字典,数字为key,value为中文,你根据数字找字典不就行了,还可以在数据库中定义一个表,去表中查询,或者sql查询时,就两表联合或用when case语句专为中文



能具体怎么做,给点提示吧
[其他解释]
引用:
sql帮助查 CASE 语句


大神,不要给这个吧,看完题目。
[其他解释]
引用:
替换后生成一个表,再导出这个表,思路是这样的,看看


不是想象的那么简单。要是简单的话我就那么做了
[其他解释]
使用oldb
[其他解释]
引用:
在你的那个子查询里,连接你的状态表,用文字当作statename不用Id
我看你的那个dutyState可能就是状态表,把dutyState.Id as statename改成dutyState.name as statename


那个不是只查询,是吧行 转换为列,就是把 日期的天 统计成 每月的一个情况,导出excle 的时候好用。 那个 sum(statename) 还不能用 navchar 只支持 int
[其他解释]
select * from ( select  datepart(DD,Duty.date) as daydate,DutyPeople.name as '姓名',DutyState.state as statename
FROM Duty,DutyDepart,DutyPeople,DutyState
where Duty.peopleID=DutyPeoPle.ID and Duty.stateID=DutyState.ID and DutyPeoPle.DepartID=DutyDepart.ID
--and CONVERT(varchar(7), date, 121)='2012-11'
) qty pivot( max(statename) for daydate in( 
[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31] ) ) as  pvt

大神们看我自己怎么解决的 sum 不能用于计算字符串,然后就让 max /min 等能计算字符串的 的聚合函数来
计算,就把传入回来的 状态的 中文直接传递过来了
然后一切都ok 了


[其他解释]
sql行列转换都做出来了,能让这个难住?我不信.
你直接inner join你的状态表不就ok了.
[其他解释]

引用:
select * from ( select  datepart(DD,Duty.date) as daydate,DutyPeople.name as '姓名',DutyState.state as statename
FROM Duty,DutyDepart,DutyPeople,DutyState
where Duty.peopleID=DutyPeoPle.I……



这不就是我给你说的意思么
[其他解释]
话说在行列转换的时候,用Max函数能处理字符串类型.

热点排行