Как получить набор данных с определенным значением в ASP.net?

У меня есть набор данных с несколькими столбцами. Есть один столбец с именем Is_Deleted, который имеет логическое значение.

Я получаю полный набор данных, используя код ado.net в службе WCF с SQL Server.

Теперь мне нужны все строки в наборе данных со значением столбца Is_Deleted = false. Первоначально я получал желаемый результат, когда сама хранимая процедура. Где я выбирал столбцы, где Is_deleted = false.

я хочу, чтобы эта же операция выполнялась на С#. Поэтому, пожалуйста, скажите мне, как я могу действовать.


person user3264676    schedule 03.02.2014    source источник
comment
SqlDataAdapter dAdapter = новый SqlDataAdapter (m_command); dAdapter.Fill(dsPwd); Это код   -  person user3264676    schedule 03.02.2014
comment
Если вы хотите отправить обратно DataSet в качестве ответа в WCF, я рекомендую не делать этого. Он раскроет ваши метаданные и схему ваших данных. Вместо этого используйте пользовательские классы.   -  person Faizan Mubasher    schedule 03.02.2014


Ответы (1)


Если вы хотите отфильтровать DataSet/DataTable, вы можете использовать Linq-To-DataSet:

var nonDeletedRows = ds.Tables[0].AsEnumerable()
    .Where(row => !row.Field<bool>("Is_Deleted"));

Если вам нужно сохранить этот запрос, вы можете создать новый DataTable через CopyToDataTable:

DataTable tableWithNonDeletedRows = nonDeletedRows.CopyToDataTable();

Если DataSet строго типизировано, вы можете напрямую использовать автоматически сгенерированный столбец.

Например (при условии, что имя таблицы "TableName"):

tableWithNonDeletedRows = ds.TableName.Where(r=> !r.Is_Deleted).CopyToDataTable();
person Tim Schmelter    schedule 03.02.2014