日期:2014-05-17  浏览次数:20418 次

.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 查询语句