小弟问一个有关问题 关键字-SQLSERVER C

小弟问一个问题 关键字-SQLSERVER C#
小弟问一个有关问题 关键字-SQLSERVER C我在加了content like .... 之后就找不到结果了.不过参数拿出来直接在数据库里是可以找到结果的  请问为什么呢?小弟问一个有关问题 关键字-SQLSERVER C小弟问一个有关问题 关键字-SQLSERVER C
------解决方案--------------------
你在哪里学过t-sql的参数查询语句中可以写   like '@p1'  这类东西的? 你把 @ 写到字符串常量里没有任何作用。
------解决方案--------------------
like 后边需要跟一个变量,例如   like @p1。那么你可以定义一个nvarchar类型的变量p1,它使用你的参数中拼接字符串去产生 like 查询参数。
------解决方案--------------------
 Content like @content1    你这还叫like了?? ‘%’+@content1  +‘%’

------解决方案--------------------
你在C#下如果知道什么是字符串拼接,在SQLSERVER里其实一样的
问题就是要拼接2次,C#下实现SQL语句的拼接
------解决方案--------------------
直接把值在C#里边拼接到sql语句吧,但可能会存在安全问题
------解决方案--------------------
引用:
Quote: 引用:

 Content like @content1    你这还叫like了?? ‘%’+@content1  +‘%’
"select id,content from Web_Product where Content like  '%'+@content1+'%' and id =@id1 ";不行啊.

不是sqlserver 数据库?

------解决方案--------------------
引用:
Quote: 引用:

like 后边需要跟一个变量,例如   like @p1。那么你可以定义一个nvarchar类型的变量p1,它使用你的参数中拼接字符串去产生 like 查询参数。
SP大神  ,select id,content from Web_Product where Content like @content1 and id =@id1  是这样写不?


你应该另外定义一个变量,不是直接使用 content1
------解决方案--------------------
或者,也可以直接写表达式,例如   WHERE ABCD LIKE '%' + @content1 + '%'  这类的。

------解决方案--------------------
引用:
Quote: 引用:

 Content like @content1    你这还叫like了?? ‘%’+@content1  +‘%’
"select id,content from Web_Product where Content like  '%'+@content1+'%' and id =@id1 ";不行啊.


你自己调试,并且给出你的调试结果。只要语法和思路正确,更多事情我确实管不了多么细。
------解决方案--------------------
引用:
Quote: 引用:

like 后边需要跟一个变量,例如   like @p1。那么你可以定义一个nvarchar类型的变量p1,它使用你的参数中拼接字符串去产生 like 查询参数。
SP大神  ,select id,content from Web_Product where Content like @content1 and id =@id1  是这样写不?

这么写不行么?
------解决方案--------------------
要不别用参数,直接写成sql语句
------解决方案--------------------
你先弄明白如何在数据库客户端直接执行SQL语句(SQLSERVER应该叫查询分析器)
SQL语句不报错误了之后,用C#来拼接这个SQL语句的字符串
不要问题都搅在一起,最后也不知道到底哪里不对
------解决方案--------------------
传参方式的SQL语句实在弄不明白的话,就别@了,直接把值拼接进去算了
------解决方案--------------------
select id,content from Web_Product where Content like @content1

@content1 = '%abc%'
------解决方案--------------------
看得晕晕乎乎的,C#中写like怎么这么难?
------解决方案--------------------
看了代码就头疼,真是痛苦啊
------解决方案--------------------
string.format( like '%{0}%',"afadsf");
------解决方案--------------------
引用:
Quote: 引用:

你先弄明白如何在数据库客户端直接执行SQL语句(SQLSERVER应该叫查询分析器)
SQL语句不报错误了之后,用C#来拼接这个SQL语句的字符串
不要问题都搅在一起,最后也不知道到底哪里不对
SQL里执行是正确的 刚刚说了呀......一楼不是说了吗...拼进去不是要考虑特殊字符的问题吗.? 难道他们俩是一样的???小弟问一个有关问题 关键字-SQLSERVER C

根本没有特殊字符,C#里字符串双引号,SQL语句中单引号
你在数据库里试的时候就用传参的形式试好,然后改C#拼接
而不是在SQL中用个简单的语句,跑C#里直接拍头想复杂的语句
------解决方案--------------------
根本不需要任何转义字符,直接拼接就行了
问题就是你语句必须先在数据库中能够执行成功,否则你拼的越对越执行不了,拼错了还可能歪打正着呢
------解决方案--------------------
小弟问一个有关问题 关键字-SQLSERVER C
------解决方案--------------------
content like '%“ + content1 +”%' 

在c#里直接拼接完成
------解决方案--------------------
顺便友情提醒一下and 后面的id=id应该放like前面
------解决方案--------------------
引用:
顺便友情提醒一下and 后面的id=id应该放like前面

+1
先精确匹配,后模糊匹配,效率比较高
------解决方案--------------------
随便写了个测试代码,我的怎么可以呢?

using (SqlConnection sqlconn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=InstantSupportTest;Data Source=."))
{
    sqlconn.Open();
    DataTable dt = new DataTable();
    SqlCommand cmd = new SqlCommand("select * from log where description like '%' + @content + '%'", sqlconn);