Задать вопрос

Как получить данные из DataSet?

Тщетно пытаюсь получить данные из подключенного DataSet. Подключил БД через Источники данных, данные успешно добавляются в БД через TableAdapter. Теперь хочу взять данные из этой базы через DataSet при помощи LINQ. Но в интернете все примеры начинаются с того, что DataSet создаётся и заполняется непосредственно перед тем, как взять из неё данные, например:
StudentDataSet studentDataSet = new StudentDataSet();
studentDataSet.Students.AddStudentsRow(1, "Александр Ерохин");
studentDataSet.Students.AddStudentsRow(7, "Елена Волкова");
studentDataSet.Students.AddStudentsRow(13, "Дмитрий Моисеенко");
studentDataSet.Students.AddStudentsRow(72, "Андрей Мухамедшин");
 
string name =
     studentDataSet.Students.Where(student => student.Id == 7).Single().Name;
 
Console.WriteLine(name);
А как взять данные из уже существующего DataSet? Ведь естественно, что когда я создаю new DataSet(), данных в нём не будет, и следующий запрос будет создавать пустой DataSet, а потом в нём что-то искать:
var ds = new masterDataSet();
 
var lotTable = ds.LOTS;
 
IEnumerable<DataRow> query =
   from lot in lotTable.AsEnumerable()
   select lot;
То есть, как мне кажется, нужно что-нибудь типа
var ds = masterDataSet.GetCurrent();
  • Вопрос задан
  • 7275 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
У датасета есть коллекция Tables (тип DataTableCollection) их перебирайте.
Все есть в MSDN. Потрясная штука я Вам скажу ;)

msdn.microsoft.com/ru-ru/library/system.data.datas...
Ответ написан
IgorOleynick
@IgorOleynick Автор вопроса
Сделал, как я понимаю, через ADO.NET. Вот так, всё работает как надо:
var lotsTableAdapter = new LOTSTableAdapter();
var data = lotsTableAdapter.GetData();
 
var lots = new List<Lot>();
foreach (var lot in data)
{
lots.Add(new Lot(lot.Field<int>("LOT_ID"), lot.Field<string>("LOT_NAME"));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы