C#判断语法出错

g497772921 2010-01-30 04:44:39
m_id,m_user,m_content,Convert(varchar(10),m_date,120)as m_date1,(m_content.length > 25 ? m_content. as m_content1 : substring(m_content,0,25)as m_content1) from Pmessage

這樣判斷m_content的長度是否大于25,是則取前面的否則取后面的,出错了,提示">"附近出错!
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
g497772921 2010-02-01
  • 打赏
  • 举报
回复
还有一个问题,本身数据表中没有ID这一列,但我想在gridview显示数据时加上ID这一列,我在后台应该怎样写呢?
后台代码:
SqlConnection con = Dcon.createConnection();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select m_id,m_user,m_content,Convert(varchar(10),m_date,120)as m_date1,case when datalength(m_content) >50 then substring(m_content,0,25)+'...' else m_content end as m_content1 from Pmessage", con);
DataSet ds = new DataSet();
sda.Fill(ds, "Mes");
this.Mes.DataSource=ds.Tables["Mes"];
this.Mes.DataKeyNames=new string[] {"m_id"};
this.Mes.DataBind();
丰云 2010-02-01
  • 打赏
  • 举报
回复
SQL:结构化查询语言,也是一种独立的,面向关系数据库的开发语言规范。
SQL server:是微软推出的,基于SQL(符合该规范)的数据库系统。

它跟C#不是同一个东西。
不要再搞混咯。。。
fwacky 2010-02-01
  • 打赏
  • 举报
回复
len 不能对 Text 进行计算!
fwacky 2010-02-01
  • 打赏
  • 举报
回复

把 len 修改为:datalength

select
case when datalength(m_content) >25 then substring(m_content,0,25)
else m_content end as m_content
from Pmessage
g497772921 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qawszx 的回复:]
应该是大于25就截取前25,否则就显示m_content这个字段吧


select case when len(m_content) >25 then  substring(m_content,0,25) else m_content  end as  m_content  from Pmessage





select substring(m_content,0,25) as  m_content  from Pmessage

[/Quote]
直接就截取不能实现我要的那个功能


我用了上面的,还出错:
异常详细信息: System.Data.SqlClient.SqlException: 函数 len 的参数 1 的数据类型 text 无效。

m_conetnt 是text类型 为什么会无效的?
qawszx 2010-02-01
  • 打赏
  • 举报
回复
应该是大于25就截取前25,否则就显示m_content这个字段吧


select case when len(m_content) >25 then substring(m_content,0,25) else m_content end as m_content from Pmessage



或者直接就截取



select substring(m_content,0,25) as m_content from Pmessage
qawszx 2010-02-01
  • 打赏
  • 举报
回复

select case when len(m_content) >25 then m_content else substring(m_content,0,25) end as m_content from Pmessage


或者直接就截取


select substring(m_content,0,25) as m_content from Pmessage
wuyq11 2010-02-01
  • 打赏
  • 举报
回复
(case when len(m_content)> then m_content else substring(m_content,0,25) end) as m_content1
xray2005 2010-02-01
  • 打赏
  • 举报
回复
select case when m_content.length > 25 then m_content else substring(m_content,0,25)end as m_content1
g497772921 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lost_painting 的回复:]
VB.NET , SQL中确实没有 C# , C++ 中 :" 条件 ? 条件成立时返回内容: 条件不成立时返回内容"
但是有这个 IIF, 其一定意义上也是 三元运算符 ,呵呵
IIF(条件,条件成立时返回内容,条件不成立时返回内容)

IIf 函数:http://msdn.microsoft.com/zh-cn/library/27ydhh0d.aspx

Visual Basic 2008 新引入了一个使用短路计算的 If 运算符。
让编程更加简便了,减少IIF中nothing的判断

引用 1 楼 vrhero 的回复:
这哪里是C#语法...SQL没有三元运算符,改成IIF语句,去看SQL教程...

SQL codeIIF(m_content.length>25,m_content,substring(m_content,0,25))as m_content1

[/Quote]
还是出错:
第 1 行: '>' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '>' 附近有语法错误。

源错误:


行 31: sda.SelectCommand = new SqlCommand("select m_id,m_user,m_content,Convert(varchar(10),m_date,120)as m_date1,IFF(m_content.length>25,m_content,substring(m_content,0,25)) as m_content1 from Pmessage", con);
行 32: DataSet ds = new DataSet();
行 33: sda.Fill(ds, "Mes");
行 34: this.Mes.DataSource=ds.Tables["Mes"];
行 35: this.Mes.DataKeyNames=new string[] {"m_id"};

鸭梨山大帝 2010-01-30
  • 打赏
  • 举报
回复
VB.NET , SQL中确实没有 C# , C++ 中 :" 条件 ? 条件成立时返回内容: 条件不成立时返回内容"
但是有这个 IIF, 其一定意义上也是 三元运算符 ,呵呵
IIF(条件,条件成立时返回内容,条件不成立时返回内容)

IIf 函数:http://msdn.microsoft.com/zh-cn/library/27ydhh0d.aspx

Visual Basic 2008 新引入了一个使用短路计算的 If 运算符。
让编程更加简便了,减少IIF中nothing的判断

[Quote=引用 1 楼 vrhero 的回复:]
这哪里是C#语法...SQL没有三元运算符,改成IIF语句,去看SQL教程...

SQL codeIIF(m_content.length>25,m_content,substring(m_content,0,25))as m_content1
[/Quote]
小_虎 2010-01-30
  • 打赏
  • 举报
回复
select case when m_content.length > 25 then m_content else substring(m_content,0,25)end as  m_content1
vrhero 2010-01-30
  • 打赏
  • 举报
回复
这哪里是C#语法...SQL没有三元运算符,改成IIF语句,去看SQL教程...

IIF(m_content.length>25,m_content,substring(m_content,0,25)) as m_content1

62,264

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧