如何使用DevArt dotConnect for Oracle库进行WHERE COLUMN LIKE '%SearchTerm%'
?
理想情况下,使用CommandParameter
作为SearchTerm?
我尝试了以下内容并没有带来快乐:
cmd.CommandText =
"SELECT ID, COLUMN_A, COLUMN_B FROM TABLE_A
WHERE COLUMN_A LIKE :SearchTerm";
我使用过它:
cmd.CommandText =
"SELECT ID, COLUMN_A, COLUMN_B FROM TABLE_A
WHERE COLUMN_A LIKE :SearchTerm";
cmd.Parameters.AddWithValue("SearchTerm", "%" + term.Replace('%', ' ') + "%");
但我不满意用%
标志来包含这个词 - 是否有正确或更好的方式?
答案 0 :(得分:2)
Oracle本身不喜欢“Where LIKE%:searchterm%”,所以如果你需要那里的通配符,那么它们需要作为参数的一部分添加。
您可以通过在要搜索的列上设置full text index来避免它,然后使用CONTAINS,而不需要使用通配符。它也是一种更强大的搜索方法,但设置起来更复杂。
答案 1 :(得分:2)
试试这个解决方案:
cmd.CommandText =
"SELECT ID, COLUMN_A, COLUMN_B
FROM TABLE_A
WHERE COLUMN_A LIKE '%' || :SearchTerm || '%'";
cmd.Parameters.AddWithValue("SearchTerm", term);