Может кто-нибудь помочь мне с 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();
......
}