2010-07-09 3 views
2

У меня есть datatable, и я хочу отфильтровать эту таблицу с именем компании. Но он дал эту ошибку: «Синтаксическая ошибка Отсутствует opperand after 's' operater.Отсутствует оператор opperand after 's

Мой код как этот.

В чем проблема?

ответ

5

Проблема «Dyn's». Вы можете использовать \ «вместо» возникает проблема

+0

так спасибо его работе ... – emrahe

+0

Я думаю, что вы можете написать @ "Dyn's" – Jonathan

7

Это апостроф в имени, вам нужно, чтобы избежать его:

DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'", resultDt.Columns["Company"], "Dyn\'s")) 

Выпуск это вытесняются {1} и поэтому результирующая строка выглядит 'Dyn's', ускользнув от него, вы получите 'Dyn\'s', который должен быть в порядке.

4
Dyn's 

Вам нужно бежать апостроф:

Dyn\'s 
1

возможность использовать LINQ к DataTable вместо Вы? Я всегда думал, что DataTable.Select() - способ, способный совершить ошибки, именно по этой причине.

Выполнение запросов с использованием LINQ to Objects (эффективно) с помощью метода DataTableExtensions.AsEnumerable() (или, проще говоря, с использованием строго типизированных наборов данных, IIRC) является более приятным IMO. По общему признанию, вы не получите преимущества какой-либо индексации в памяти, выполняемой DataTable, но я подозреваю, что в большинстве случаев это будет неактуально.

Смежные вопросы