问题描述
比如说,存放贴子的表1的结构如下:贴子主题,发贴时间,发贴人IP,注册用户ID.存放用户的表2的结构如下:注册用户ID,注册用户名.红色的两个字段是一样的.数据源:select*from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID.GridView控件绑定了其中的,发贴人IP 列,注册用户名 列.请问,怎么把这两个列合为一列,列名叫作者,如果是注册用户,就显示 注册用户名,如果是未注册用户就显示 发贴人IP?
解决方案
解决方案二:
selectisnull(表2.注册用户名,表1.注册用户ID)from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID
解决方案三:
更正:selectisnull(表2.注册用户名,表1.发贴人IP)from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID
解决方案四:
select别的字段,if(注册用户名列isnull)then发贴人IP列else注册用户名列from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID.
解决方案五:
哦,原来SQL查询语句中也能用一些附加语言?这就试下!
解决方案六:
也可以在绑定的时候<%#Eval("username")==nullEval("ip"):Eval("username")%>大概意思是这样
解决方案七:
为什么我那么写了后,它提示说:isnull附近有语法错误.或者then,附近有语法错误?我的语句是这样的:select其它字段,isnull(表2.注册用户名,表1.发贴人IP)或者if(UserNameisnull)thenTopicIPelseUserName from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID
解决方案八:
而且我想让,注册用户名是以链接的方式显示,发贴人IP是以普通文字显示,应该怎么做呢?
解决方案九:
select别的字段,isnull(注册用户名列,发贴人IP)from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID.
解决方案十:
引用7楼satonglezhang的回复:
而且我想让,注册用户名是以链接的方式显示,发贴人IP是以普通文字显示,应该怎么做呢?
那就只能在绑定的时候判断了
解决方案十一:
引用8楼mylibin的回复:
select别的字段,isnull(注册用户名列,发贴人IP)from表1leftjoin表2on表1.注册用户ID=表2.注册用户ID.
为什么我这么用就提示isnull附近有语法错误啊?
解决方案十二:
引用9楼mylibin的回复:
引用7楼satonglezhang的回复:而且我想让,注册用户名是以链接的方式显示,发贴人IP是以普通文字显示,应该怎么做呢?那就只能在绑定的时候判断了
具体怎么弄呢?
解决方案十三:
<%#GetStr(Eval("ip"),Eval("username"))%>后台cs里:publicstringGetStr(objectip,objectu){if(u==null||u.ToString()=="")returnip.ToString();returnstring.Format("<ahref="xxxx.aspx?u={0}">{0}</a>",u);}
解决方案十四:
用了楼上的方法,可行,呵呵,谢谢啦.