Я использую следующий код
foreach (KeyValuePair<string, string> kvp in letGrdSignList)
{
//Check if added function in definition is modified, if yes then don't add it in signature list
DataRow[] dLetRow = dtLet.Select("Definition" + "Like"" + "'" +
"%"+ kvp.Value + "%" + "'");
//kvp.value contains "local:try2values($arg1 as xs:decimal,$arg2 as xs:float*)"
//Above line results in error
if (dLetRow.Length > 0)
{
//Check if signature already exists
if (!strList.ContainsKey(kvp.Key))
strList.Add(kvp.Key, kvp.Value);
}
//else
// //Remove from list if signature is not present in any defination column
// letGrdSignList.Remove(sLetSignature);ss
}
I am getting following error
{System.Data.EvaluateException: Error in Like operator: the string pattern '%local:try2values($arg1 as xs:decimal,$arg2 as xs:float*)%' is invalid.
at System.Data.LikeNode.AnalyzePattern(String pat)
at System.Data.LikeNode.Eval(DataRow row, DataRowVersion version)
at System.Data.Select.AcceptRecord(Int32 record)
at System.Data.Select.GetLinearFilteredRows(Range range)
at System.Data.Select.SelectRows()
at System.Data.DataTable.Select(String filterExpression)
at WPFApp.QueryGenerator.GetSignatureList()
скриншот кода
из MSDN, если нашел это
Подстановочные знаки
И символы *, и% можно использовать взаимозаменяемо для подстановочных знаков в сравнении LIKE. Если строка в предложении LIKE содержит * или%, эти символы должны быть заключены в квадратные скобки ([]). Если в предложении есть скобки, каждый символ скобки должен быть заключен в скобки (например, [[] или []]). Подстановочный знак допускается в начале и конце шаблона, или в конце шаблона, или в начале шаблона. Например:
"ItemName LIKE ' product '"
"ItemName LIKE '* product'"
"ItemName LIKE 'product *'"
Символы подстановки не допускаются в середине строки. Например, 'te * xt' не допускается.