Может кто-нибудь помочь мне с Table.Select(Выражение), где выражение может быть что-то вроде этого Выражение = "идентификатор в (1,2,3,4)"

Есть ли пример Table.Select(Expression) где выражение может быть примерно таким:

Expression = "id in (1,2,3,4)"

У меня есть список, если идентификаторы в переменной IdList, Таблица содержит все TS_Ids где как IdList имеет только подмножество идентификаторов. Поэтому я хочу что-то вроде этого

        string IdList = "(1,2,3,4)";
       Table.Select("[ts_id] in IdList");

1 ответ

Решение

Метод DataTable.Select использует свойство DataColumn.Expression. А оператор IN указан между разрешенными операторами в свойстве Expression. Таким образом, ваш код может быть написан как

DataRow[] rows = Table.Select("[ts_id] in (" + IdList + ")");

Конечно, это предполагает, что ваша переменная IdList содержит допустимую строку идентификаторов, разделенных запятыми. что-то вроде

IdList = "1,3,5,6";

Если вы хотите DataTable в качестве возвращаемого значения, то вы можете написать

DataRow[] rows = Table.Select("[ts_id] in (" + IdList + ")");
if(rows.Length > 0)
{
   DataTable subTable = rows.CopyToDataTable();
   ......
}
Другие вопросы по тегам