powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перебрать данные из результатов запросов по классам
8 сообщений из 8, страница 1 из 1
Перебрать данные из результатов запросов по классам
    #39570343
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Пусть приложение отправляет несколько SQL-запросов. И один из запросов возвращает такой результат как исходные данные:

ТТSKUДата Мера1Мера2ТТ1SKU101.10.201752ТТ1SKU102.10.20171ТТ1SKU103.10.20171ТТ1SKU104.10.20174ТТ1SKU105.10.20172ТТ1SKU106.10.20171ТТ1SKU107.10.20171ТТ1SKU108.10.201711...............ТТ1SKU201.10.201741ТТ1SKU202.10.20171...............ТТ2SKU101.10.201731ТТ2SKU102.10.20172...............

Будет два класса.

Первый класс это Сценарий. Имеет такие свойства как ТТ , SKU , Дата поставки , и еще свойство Данные как массив Второго класса.
ЭкземплярСценарий(1)Сценарий(2)Сценарий(3)Сценарий(4)...Сценарий(5)Сценарий(6)Сценарий(7)Сценарий(8)...TTТТ1ТТ1ТТ1ТТ1...ТТ2ТТ2ТТ2ТТ2...SKUSKU1SKU1SKU2SKU2...SKU1SKU1SKU2SKU2...Дата поставки22.10.201727.10.201722.10.201727.10.2017...22.10.201727.10.201722.10.201727.10.2017...Данные()Данные()Данные()Данные()Данные()...Данные()Данные()Данные()Данные()...
Второй класс имеет такие свойства как Дата , Мера1 , Мера2 . В общем если разложить этот массив Данные , то выглядит следующим образом:

Для экземпляра класса Сценарий(1)
ЭкземплярДанные(1)Данные(2)Данные(3)Данные(4)Данные(5)Данные(6)Данные(7)Данные(8)Дата01.10.201702.10.201703.10.201704.10.201705.10.201706.10.201707.10.201708.10.2017...Мера1541...Мера22112111...
Для других экземпляров класса Сценарии() другие данные.

Будет создаваться список ТТ+SKU+Дата поставки. Потом для каждого элемента списка создается класс и толкаются туда соответствующие данные из результатов запросов.

Если я правильно понимаю, то сначала надо выгружать данные через объект SqlCommand и SqlReader, а потом затолкать в объект типа виртуальная таблица. И там перебором по классам раскидывать данные.

Скажите как на C# правильно считывать данные с результатов запросов, чтобы потом быстро раскидывать данные по классам?
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39570363
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не особо понял, что такое раскидывать по классам.
Можно для класса сущности, сделать метод типа TryParse(IDataRecord) который будет считывать из записи IDataReader'а все нужные поля и загружать себя сам.
Для простоты есть такие классы как DataSet'ы, там можно определить зависимости, можно сперва загрузить в DataSet'ы, а потом создавать объекты нужного класса из них.
Есть способ еще проще, но медленнее, выгружаете данные в виде 1 XML файла, и залпом десериализуете и получаете сразу готовую модель данных

Смахивает это всё с виду на базу временных рядов или что это такое?
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39570428
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesне особо понял, что такое раскидывать по классам.Если говорить проще, то предположим у нас есть первый экземпляр класса, где свойство ТТ имеет значение "ТТ1" и SKU имеет значение "SKU1". Нужно заполнить свойство-массив Данные() , а именно Мера1 и Мера2 по дням. Значит пробегаемся по строкам результата, и ищем строки с "ТТ1+SKU1+ 01 .10.2017", "ТТ1+SKU1+ 02 .10.2017", "ТТ1+SKU1+ 03 .10.2017" и т. д. и по дням в экземпляре заполняем соответствующие значения Мера1 и Мера2 .

Можно для класса сущности, сделать метод типа TryParse(IDataRecord) который будет считывать из записи IDataReader'а все нужные поля и загружать себя сам.Как это загружать сам себя?
Для простоты есть такие классы как DataSet'ы, там можно определить зависимости, можно сперва загрузить в DataSet'ы, а потом создавать объекты нужного класса из них. Можно ссылку, пример
Есть способ еще проще, но медленнее, выгружаете данные в виде 1 XML файла, и залпом десериализуете и получаете сразу готовую модель данныхМожно ссылку, пример

Смахивает это всё с виду на базу временных рядов или что это такое?В исходнике данные по дням. И в итоге нужно построить отдельные таблицы, диаграммы, статистику по каждому экземпляру.
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39570482
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в гугле забаннили?
DataSet: https://msdn.microsoft.com/ru-ru/library/system.data.dataset(v=vs.110).aspx

Сериализация:
https://msdn.microsoft.com/ru-ru/library/system.xml.serialization.xmlserializer(v=vs.110).aspx
https://msdn.microsoft.com/ru-ru/library/tz8csy73(v=vs.110).aspx
по поводу генерации XML, зависит от того, какую СУБД вы используйте, если честно, я не в 1 не умею этого делать, потому как для этого у нас есть базисты, но думаю там всё довольно просто, погуглите
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39570486
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак это загружать сам себя?
в качестве параметров в конструторе типа или в методе фабрике должен быть аргумент типа IDataReader\IDataRecord, в этом методе\конструторе вы прочитаете поля и заполните свойства класса
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39571273
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

У вас каша в голове, вы уйдите от данных и перейдите к сущностям
Что такое сценарий? что такое данные сценария?

по поводу чтения данных есть куча ORM,
но если ваш проект небольшой, то может быть уместно использовать типизированный DataSet
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39571286
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationferzmikk,уйдите от данных и перейдите к сущностям
Что такое сценарий? что такое данные сценария?Сценарий это класс, который обозначает, скажем так, Идентификацию TT+SKU. Данные сценария - это скажем так, для ТТ+SKU данные по отгрузкам и продажам по дням за определенный период. Это нужно для того, чтобы потом строить таблицу для каждого ТТ+SKU, диаграмму, смотреть статистику.
...
Рейтинг: 0 / 0
Перебрать данные из результатов запросов по классам
    #39571295
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
Зачем именно классы и ООП? На sql не хотите?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перебрать данные из результатов запросов по классам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]