ACCESS库的通配符和SQL SERVER的通配符不一样。 对于字符串模糊查询来说 ACCESS库的通配符为:* 与任何个数的字符匹配。 (但在C#里的写法还是一样用%来代替*) ? 与任何单个字母的字符匹配 在SQL Server中的通配符为:% 与任何个数的字符匹配 - 与单个字符匹配 正确写法应是: 在C#里应写成 Select * From Table Where Name Like ''%keywords%'' 这里还是与SqlServer一样 = =! Select * From Table Where Name Like ''_keywords_'' 在Access测试语句时应写成: Select * From Table Where Name Like ''*keywords*'' Select * From Table Where Name Like ''?jkeywords?'' 附: Access的通配符 * 与任何个数的字符匹配,它可以在字符串中,当做第一个或最后一个字符使用。 wh* 可以找到 what、white 和 why ? 与任何单个字母的字符匹配。 B?ll 可以找到 ball、bell 和 bill [ [ 与方括号内任何单个字符匹配。 B[ae]ll 可以找到 ball 和 bell 但找不到 bill ! 匹配任何不在括号之内的字符。 b[!ae]ll 可以找到 bill 和 bull 但找不到 bell - 与范围内的任何一个字符匹配。必须以递增排序次序来指定区域(A 到 Z,而不是 Z 到 A)。 b[a-c]d 可以找到 bad、bbd 和 bcd # 与任何单个数字字符匹配。 1#3 可以找到 103、113、123
declare @t1 varchar(20) set @t1='aaaa' --SELECT * FROM Publisher where realname like '%'+@t1+'%' 或者 exec('SELECT * FROM Publisher where realname like ''%'+@t1+'%''')
你是搜索realname中是否含用t1字符吗?
我明白了。你是access.
用 * 代替 % 吧!
ACCESS库的通配符为:* 与任何个数的字符匹配。 (但在C#里的写法还是一样用%来代替*)
? 与任何单个字母的字符匹配
在SQL Server中的通配符为:% 与任何个数的字符匹配
- 与单个字符匹配
正确写法应是: 在C#里应写成 Select * From Table Where Name Like ''%keywords%'' 这里还是与SqlServer一样 = =!
Select * From Table Where Name Like ''_keywords_''
在Access测试语句时应写成: Select * From Table Where Name Like ''*keywords*''
Select * From Table Where Name Like ''?jkeywords?''
附: Access的通配符
* 与任何个数的字符匹配,它可以在字符串中,当做第一个或最后一个字符使用。 wh* 可以找到 what、white 和 why
? 与任何单个字母的字符匹配。 B?ll 可以找到 ball、bell 和 bill
[ [ 与方括号内任何单个字符匹配。 B[ae]ll 可以找到 ball 和 bell 但找不到 bill
! 匹配任何不在括号之内的字符。 b[!ae]ll 可以找到 bill 和 bull 但找不到 bell
- 与范围内的任何一个字符匹配。必须以递增排序次序来指定区域(A 到 Z,而不是 Z 到 A)。 b[a-c]d 可以找到 bad、bbd 和 bcd
# 与任何单个数字字符匹配。 1#3 可以找到 103、113、123
set @t1='aaaa'
--SELECT * FROM Publisher where realname like '%'+@t1+'%'
或者
exec('SELECT * FROM Publisher where realname like ''%'+@t1+'%''')
<%
Driver DriverRecordset2 = (Driver)Class.forName(MM_lh1_DRIVER).newInstance();
Connection ConnRecordset2 = DriverManager.getConnection(MM_lh1_STRING,MM_lh1_USERNAME,MM_lh1_PASSWORD);
PreparedStatement StatementRecordset2 = ConnRecordset2.prepareStatement("SELECT * FROM jianli where realname like '+" + Recordset2__t1 + "+' ");
ResultSet Recordset2 = StatementRecordset2.executeQuery();
boolean Recordset2_isEmpty = !Recordset2.next();
boolean Recordset2_hasData = !Recordset2_isEmpty;
Object Recordset2_data;
int Recordset2_numRows = 0;
%>
前面加个N 是这样么 SELECT *from jianli where realname like N'%t1%'? 这显示语法错误啊,关键不知道为什么不认中文 只能查出数据中的英文