Проблема с DataTable.Select - PullRequest
       3

Проблема с DataTable.Select

1 голос
/ 25 января 2011

Есть ли способ найти значение в DataTable, используя метод Выберите: items.Select("Number like '%10%'");

Но тип числа - Int, и этот код не работает ...

Ответы [ 6 ]

1 голос
/ 25 января 2011

Посмотрите на функции T-SQL CAST и CONVERT , они могут вам здесь помочь.В основном, в вашем запросе, используйте CAST или CONVERT (не уверен, что вам больше подходит), чтобы заменить int на строку, которую вы можете выполнить LIKE.

0 голосов
/ 04 декабря 2015

Для тех, кто читает в будущем, это может помочь:

DataRow[] matchingRows = a.Select("Convert(Age, 'System.String') like '2%'   "); // cut and paste from my code

Итак, в вашем коде это будет:

DataRow[] matchingRows = a.Select("Convert(Number, 'System.String') like '10%' "); // where Number is the name of your column.
0 голосов
/ 25 января 2011

Вы можете использовать DataView для фильтрации значений в DataTable

DataView dv = new DataView(dtSample);
dv.RowFilter = "Number like '%10%'";
0 голосов
/ 25 января 2011

Если память служит, вам нужно избежать одиночной кавычки, удвоив ее. То есть:

items.Select("Number like ''%10%''");
0 голосов
/ 25 января 2011

Вы можете использовать linq следующим образом:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<string>("Number").Contains("10")
    select item;

или если Число на самом деле является числом:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<double>("Number").ToString().Contains("10")
    select item;
0 голосов
/ 25 января 2011

Если вы действительно хотите иметь такое поведение, то было бы лучше просто добавить в вашу таблицу дополнительный вычисляемый столбец типа «NumberText» с типом String, который будет хранить те же значения, что и для столбца Number. Затем вы можете выполнить выражение: items.Select("NumberText like '%10%'");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...