如何在MS-Access中使用c#在查询中使用带有通配符的LIKE运算符

时间:2011-08-06 16:53:56

标签: c# sql ms-access wildcard

我在我的C#app中使用MS Access数据库,我需要传递类似参数的查询。我找到了各种文件说我们可以使用“*”或“?”作为通配符。但是当我尝试将它添加到我的查询中时,它会抛出异常。

实际上MSAccess使用这种格式... LIKE“ United ”{这里双引号是强制性的。}但是作为我的C#代码中的字符串,我无法在运行时创建。如果我使用“在我的弦中不止一次出现红色波浪。

所以我需要一种方法来使用带有通配符支持的查询。

我的字符串是

SELECT student.roll_no, student.s_name, fee.fee_date, (fee.adm_fee+fee.mon_fee+fee.lib_fee+fee.exm_fee) AS fee, class.c_name
FROM class
INNER JOIN (fee INNER JOIN student ON fee.s_id = student.s_id) ON (fee.c_id = class.c_id) AND (class.c_id = student.c_id)
WHERE student.s_name Like ""\""*" + name + "\"*";

我希望我的命令文本中的条件为... WHERE student.s_name Like "*xyx*"

1 个答案:

答案 0 :(得分:3)

我认为你的字符串中的格式可能不正确(当然,这是假设你得到一个SQL异常,因为你没有提到有关异常的任何细节:))

string commandtext =@"SELECT student.roll_no, student.s_name, fee.fee_date, (fee.adm_fee+fee.mon_fee+fee.lib_fee+fee.exm_fee) AS fee, class.c_name FROM class INNER JOIN (fee INNER JOIN student ON fee.s_id = student.s_id) ON (fee.c_id = class.c_id) AND (class.c_id = student.c_id) WHERE student.s_name Like \"*"+name+"*\"";