Use a seguir.
Para que a entrada do usuário pesquise como está, use escape, pois exigirá a substituição a seguir de todos os caracteres especiais (abaixo, abrange todo o SQL Server).
Aqui, aspas simples "'" não são usadas, pois não afetam a cláusula like, pois é uma questão de concatenação de cadeias.
A substituição "-" & "^" & "]" não é necessária, pois estamos escapando de "[".
String FormattedString = "UserString".Replace("ð","ðð").Replace("_", "ð_").Replace("%", "ð%").Replace("[", "ð[");
Em seguida, no SQL Query, deve ser o seguinte. (Na consulta parametrizada, a cadeia pode ser adicionada com padrões após a substituição acima).
Para pesquisar a string exata.
like 'FormattedString' ESCAPE 'ð'
Para pesquisar iniciar com string
like '%FormattedString' ESCAPE 'ð'
Para pesquisar final com string
like 'FormattedString%' ESCAPE 'ð'
Para pesquisar conter com sequência
like '%FormattedString%' ESCAPE 'ð'
e assim por diante para outras correspondências de padrões. Mas a entrada direta do usuário precisa formatar como mencionado acima.