Когда мы объявляем строку, содержащую escape-последовательность, мы можем использовать @ перед строкой.Как сохранить последовательность выхода из пользовательского ввода (C#)
string fulljob = @"division\jobtitle";
Но как, если значение строки исходит от пользовательского ввода. Мне нужно запросить:
public string GetContactName(string fulljob)
{
QueryExpression query = new QueryExpression("contact");
string[] cols = { "jobtitle", "lastname" };
query.Criteria = new FilterExpression();
query.Criteria.AddCondition("jobtitle", ConditionOperator.Equal, fulljob);
query.ColumnSet = new ColumnSet(cols);
EntityCollection ec = _service.RetrieveMultiple(query);
string tes = string.Empty;
foreach (Entity en in ec.Entities)
{
tes = tes + en["lastname"].ToString();
}
return tes;
}
Мы получаем string fulljob
от пользовательского ввода. Когда мы запускаем запрос выше, он дает мне ошибку, потому что внутри строки есть escape-последовательность:
Условие атрибута 'contact.jobtitle': null не является допустимым значением для атрибута. Вместо этого используйте «Null» или «NotNull».
выглядит как 'fulljob' фактически нулевое значение - как вы получите его от входа? Вы можете подумать о добавлении валидации входного параметра в методе или make 'query.Criteria.AddCondition (" jobtitle ", ConditionOperator.Equal, fulljob);' условный – MarioZG