Как использовать оператор LIKE с подстановочными знаками в запросе в MS-Access с использованием c # - PullRequest
1 голос
/ 06 августа 2011

Я использую базу данных MS Access в своем приложении C #, где мне нужно передать запрос, подобный параметризованному.Я нашел разные документы, в которых говорилось, что мы можем использовать «*» или «?»как подстановочные знаки.Но когда я пытаюсь добавить его в свой запрос, возникает исключение.

На самом деле 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 Ответ

3 голосов
/ 06 августа 2011

Я думаю, что у вас может быть неправильное форматирование в вашей строке (конечно, предполагается, что вы получаете исключение 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+"*\"";
...