Я думаю, вы пропустили понятия DataTable, DataTable и DataRow. DataSet представляет собой набор DataTables, вы можете найти DataRows только внутри DataTable. поэтому вам нужно сначала получить таблицы для доступа к строкам внутри таблицы.
Чтобы сделать код работоспособным, нужно внести еще несколько исправлений:
- Вы объявили переменную
colValues
в виде строки, и вы назначаете ей List (). Что поднимет вопросы компиляции. Лучший вариант - изменить тип назначения на List<string>
. - Вместо того, чтобы обращаться к значениям строки, используя только имя столбца, используйте также соответствующий тип. как
row.Field<string>("ColumnName")
- Проверьте наличие таблицы в наборе данных для более безопасной стороны.
Окончательный код будет выглядеть следующим образом:
if (dtCategory != null && dtCategory.Tables.Count > 0)
{
List<string> colValues = (from DataRow row in dtCategory.Tables[0].Rows select row.Field<string>("ColumnName")).ToList();
}