c # DataTable select не работает со специальными символами # - PullRequest
3 голосов
/ 27 сентября 2010

У меня есть выборка данных, например:

productData.Select("Name = 'AAA BBB # CCC'");

Я знаю, что запись есть, она просто не работает из-за символа #. Я пытался сбежать с [], как:

productData.Select("Name = 'AAA BBB [#] CCC'");

но все равно не работает. Я знаю, что для одинарных кавычек я удваиваю их, чтобы «становиться». Но о каких других персонажах я должен беспокоиться и как заставить это дело работать.

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

У вас абсолютно есть для использования таких таблиц данных?Я всегда невероятно нервничал по поводу текстовых запросов в DataTable именно по этой причине.

Если это вообще возможно, я предлагаю вам начать использовать LINQ.Вы можете сделать это уже с DataTable, например,

var query = products.AsEnumerable()
                    .Where(row => row.Field<string>("Name") == "AAA BBB # CCC");

Таким образом, вам не нужно беспокоиться о побеге и т. Д. Если вы используете строго типизированный набор данных, это становится еще проще, как вы можете сослатьсянепосредственно к свойствам вместо использования имен строк.

2 голосов
/ 27 сентября 2010

Вы пробовали что-то подобное?

productData.Select(@"Name = 'AAA BBB # CCC'");
...