像sql的问题

时间:2010-04-16 09:48:24

标签: c# sql-server

我正在向我的SqlCommand编写sql查询,其中一些部分看起来像:

WHERE Path like N'+(select top 1 path from  [Paths] where objectcode=@objectCode and objecttype=@objectType)+%' order by path desc,objecttype desc

我没有记录,当我在sql server 2005中编写相同内容时,我有很多行...

where path like (select top 1 path from  [Paths] where objectcode='eg' and objecttype='0')+'%'

按路径desc命令

怎么了?

@objectCode是'eg'

我看到了一些东西:

我忘了添加cmd.parameters,并且我没有得到错误,所以我认为sql将此参数看作普通字符串,并且不从那里获取值,所以:

例如: 得到'objectcode=@objectCode', 而不是'objectcode='EG''

1 个答案:

答案 0 :(得分:2)

SQL不会替换你的@objectcode参数,因为它在字符串文字中。

你需要摆脱字符串文字,使用更像:

WHERE Path like (select top 1 path from  [Paths] where objectcode=@objectCode and objecttype=@objectType)+'%' order by path desc,objecttype desc

您是否有理由将子查询括在语音标记中?没必要。