小弟问一个问题 关键字-SQLSERVER C# sqlserver数据库c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不加content like ..... 的话是没问题的,只有ID一个条件 ,问题肯定是在content传值问题 ,因为我不晓得具体原因,望大家给出出主意 你在哪里学过t-sql的参数查询语句中可以写 like '@p1' 这类东西的? 你把 @ 写到字符串常量里没有任何作用。 like 后边需要跟一个变量,例如 like @p1。那么你可以定义一个nvarchar类型的变量p1,它使用你的参数中拼接字符串去产生 like 查询参数。 SP大神 ,select id,content from Web_Product where Content like @content1 and id =@id1 是这样写不? SP大神 ,select id,content from Web_Product where Content like @content1 and id =@id1 是这样写不?@content1加上单引号也试过了 还是一样的结果..是我哪里理解错了? Content like @content1 你这还叫like了?? ‘%’+@content1 +‘%’ 你在C#下如果知道什么是字符串拼接,在SQLSERVER里其实一样的问题就是要拼接2次,C#下实现SQL语句的拼接 "select id,content from Web_Product where Content like '%'+@content1+'%' and id =@id1 ";不行啊. 能给点提示吗,C#里怎么like 我平时都是直接+参数+,没有用@写法写的 所以不熟悉.. 直接把值在C#里边拼接到sql语句吧,但可能会存在安全问题 不是sqlserver 数据库? 你应该另外定义一个变量,不是直接使用 content1 或者,也可以直接写表达式,例如 WHERE ABCD LIKE '%' + @content1 + '%' 这类的。 不是sqlserver 数据库?是SQLSERVER的 这么写不行么?嗯 这个不行 ,我现在写成这样,select id,content from Web_Product where Content LIKE '%'+@con+'%' and id =@id1 依然不行 脑壳疼/. 要不别用参数,直接写成sql语句 你先弄明白如何在数据库客户端直接执行SQL语句(SQLSERVER应该叫查询分析器)SQL语句不报错误了之后,用C#来拼接这个SQL语句的字符串不要问题都搅在一起,最后也不知道到底哪里不对 传参方式的SQL语句实在弄不明白的话,就别@了,直接把值拼接进去算了 SQL里执行是正确的 刚刚说了呀......一楼不是说了吗...拼进去不是要考虑特殊字符的问题吗.? 难道他们俩是一样的??? select id,content from Web_Product where Content like @content1@content1 = '%abc%' 看得晕晕乎乎的,C#中写like怎么这么难? string.format( like '%{0}%',"afadsf"); 根本没有特殊字符,C#里字符串双引号,SQL语句中单引号你在数据库里试的时候就用传参的形式试好,然后改C#拼接而不是在SQL中用个简单的语句,跑C#里直接拍头想复杂的语句 content like '%“ + content1 +”%' 在c#里直接拼接完成 你都已经知道加断点了,不会把sql1的值拿出来放到sql查询分析器里面看看么?如果在分析器里面是这样格式: like '%xxx%' 就行了。还有,你这like有意义吗?like一下,又用ID=去精确匹配,like不多此一举? 这种SQL语句,会被你们DBA骂死的 顺便友情提醒一下and 后面的id=id应该放like前面 随便写了个测试代码,我的怎么可以呢?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); cmd.Parameters.Add(new SqlParameter("@content", SqlDbType.NVarChar) { Value = "Process Completed" }); SqlDataAdapter adpt = new SqlDataAdapter(cmd); int rows = adpt.Fill(dt); Console.WriteLine(rows); sqlconn.Close();} 其实我这个问题的根本不是要ID跟LIKE一起匹配 我是想问为什么like不行... 多谢你们哈,其实只要实现目的like完全可以不加的,只是我有一次写上了,遇到困难就问一下.. 所以我想解决,万一以后遇到,多谢你们! [求助]用这种方法下载文件总是少几个M WEBSERVICE问题 C# winform 把table中数据导出到excel vs2005打包WinForm的问题 怎样获得combobox选择的编号 请问这是什么写法? word2003的打印窗口无法得到确定按钮的句柄 关于oracle 字段varchar2的问题 密封类里的private const字段不能被反射吗 我的“文本编辑”为什么不能实现“删除” c#中读存储结构体的二进制文件出错 通过C#编程如何启动电脑上安装的软件
问题就是要拼接2次,C#下实现SQL语句的拼接
你应该另外定义一个变量,不是直接使用 content1
是SQLSERVER的
SQL语句不报错误了之后,用C#来拼接这个SQL语句的字符串
不要问题都搅在一起,最后也不知道到底哪里不对
你在数据库里试的时候就用传参的形式试好,然后改C#拼接
而不是在SQL中用个简单的语句,跑C#里直接拍头想复杂的语句
如果在分析器里面是这样格式: like '%xxx%' 就行了。还有,你这like有意义吗?like一下,又用ID=去精确匹配,like不多此一举?
{
sqlconn.Open();
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand("select * from log where description like '%' + @content + '%'", sqlconn);
cmd.Parameters.Add(new SqlParameter("@content", SqlDbType.NVarChar) { Value = "Process Completed" });
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
int rows = adpt.Fill(dt);
Console.WriteLine(rows); sqlconn.Close();
}