在查询ACCESS数据库时,在多个字段中须要转换..
string sqlstr = "select  ID,Title,iif(Type=1,'公司新闻','行业新闻') as Type,Check,IsHome,date from XS_news";
现在只能能查询type的这一个,但想把check和ishome也要像type这样的查询...请问如何实现
我试的方法:string sqlstr = "select  ID,Title,iif(Type=1,'公司新闻','行业新闻') as Type,iif(Check=1,'通过审核,'未通过') as Check,iif(IsHome=1,'首页显示,'正常') as IsHome,date from XS_news";现在好像要出现错误!
请问如何才能达到我所须要的效果...
谢谢各个帮忙....

解决方案 »

  1.   

    用select  ID,Title,
    case  
    when Type=1 then '公司新闻'
    when Type=2 then '行业新闻'
    end as Type,
    case  
    when Check=1 then '通过审核'
    when Check=2 then '未通过'
    end as Check,...from ...
      

  2.   

    字符串未闭合,少了两个[b]'[/b]string sqlstr = "select  ID,Title,iif(Type=1,'公司新闻','行业新闻') as Type,iif(Check=1,'通过审核','未通过') as Check,iif(IsHome=1,'首页显示','正常') as IsHome,date from XS_news";
      

  3.   

    好像不得行,提示SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。源错误: 
    行 46:         OleDbDataAdapter myda = new OleDbDataAdapter(sqlstr, oleconn);
    行 47:         DataSet myds = new DataSet();
    行 48:         myda.Fill(myds);
    行 49:         GridView1.DataSource = myds;
    行 50:         GridView1.DataKeyNames = new string[] { "ID" };
     源文件: i:\瞬雷电子海报\site\admin_admin\News\News_info.aspx.cs    行: 48 
      

  4.   

    Type等像保留字的字段都用[]括起来
      

  5.   


    --没注意看,check和date是acc的保留字
    --而且不能指定重复的名称,就是起别名不能和表里面的字段一样,要不会提示“别名重复引用的错误”
    select  ID,Title,iif(Type=1,'公司新闻','行业新闻') as Type1,iif([Check]=1,'通过审核','未通过') as Check1,iif(IsHome=1,'首页显示','正常') as IsHome1,[date] from XS_news