Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458

Использование элемента DataSet в .NET 6

07.11.2023, 09:40. Показов 1307. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. До этого работал с приложениями на .NET Framework, сейчас пробую перейти на .NET 6. Столкнулся с проблемой, что в .NET 6 не могу найти элемент DataSet. Всегда использовал его, чтобы задать поля таблиц базы данных и отображать их в таблице GridControl, так можно было удобно их редактировать и размещать как нужно в конструкторе таблицы. Сейчас не пойму как это делать. Как найти элемент DataSet или на что его заменить?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2023, 09:40
Ответы с готовыми решениями:

использование DataSet
Добрый день! Как неопытный "сишарпист" опять задам глупые вопросы, т.к. перебрал темы, но нужного не нашел: есть БД Access, в ней таблица...

Использование типизированного DataSet
Есть проект содержащий две формы Form1 и Form2. На каждой из форм размещены компоненты DataGridView c именами Dgv_Fr1 (Form1) и Dgv_Fr2...

Аналог DataSet изи .NET в QT
Здравствуйте! Добавлено через 7 минут Пишу приложение для работы с таблицами их много и они все разные. На .NET есть замечательный...

26
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
07.11.2023, 10:46
Вроде всё на месте. using System.Data; указывали? Ну или скиньте скрин или код, что там не находите.
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 10:52  [ТС]
В коде он есть, можно создать и добавить таблицу
C#
1
2
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "log");
Но в конструкторе окна такого элемента найти не могу, чтобы можно было визуально с ним работать, а не через код.
Миниатюры
Использование элемента DataSet в .NET 6  
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 10:57  [ТС]
В приложении на .NET Framework элемент присутствует
Миниатюры
Использование элемента DataSet в .NET 6  
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
07.11.2023, 11:10

Не по теме:

Обожаю этот момент когда всплывают подробности...


Судя по всему его убрали, на ряду с другими элементами. Может есть какие-нибудь расширения для студии, возращающие возможность работать через дизайнер, но лично я без понятия.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,598
Записей в блоге: 1
07.11.2023, 11:36
1inkin1, правой клавишей и выбрать элеенты, то же отсутствует?
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 11:38  [ТС]
А можно ли прикрепить к GridControl созданный в коде DataSet, чтобы можно было в конструкторе GridControl настроить отображение полей?
Например, данные в таблицу я вывожу, но поля отображаются по умолчанию, а мне нужно их сгруппировать и расставить в нужном порядке.
C#
1
2
3
4
5
6
7
8
9
10
11
NpgsqlConnection connection = new NpgsqlConnection(connectionString);
connection.Open();
using (NpgsqlCommand command = new NpgsqlCommand("SELECT * FROM get_zlog_zpred", connection))
{
    NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(command);
    DataTable table1 = new DataTable();
    DataSet dataSet = new DataSet();
    adapter.Fill(dataSet, "log");
    gridControl1.DataSource = dataSet.Tables["log"];
}
connection.Close();
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 11:42  [ТС]
Цитата Сообщение от XIST Посмотреть сообщение
правой клавишей и выбрать элеенты, то же отсутствует?
В закладке .NET Framework присутствует, в остальных нет
Миниатюры
Использование элемента DataSet в .NET 6  
0
Эксперт .NET
 Аватар для Usaga
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,388
07.11.2023, 11:50
Цитата Сообщение от 1inkin1 Посмотреть сообщение
NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(command);
    DataTable table1 = new DataTable();
    DataSet dataSet = new DataSet();
    adapter.Fill(dataSet, "log");
Ну не надо так делать в 2023м году! Не средние же века. DataGrid давно умеет работать с коллекциями пользовательских классов. Ну зачем эта нетипизированная дичь начала нулевых?
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 12:06  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Ну не надо так делать в 2023м году! Не средние же века. DataGrid давно умеет работать с коллекциями пользовательских классов. Ну зачем эта нетипизированная дичь начала нулевых?
я это привёл как пример подключения. в NET Framework я в конструкторе DataSet настраивал поля и их типы, потом через BindingSource нужную таблицу подключал к GridControl и опять же в конструкторе расставлял нужные поля для отображения таблицы в окне приложения. Но сейчас элемента DataSet в конструкторе нет и я хочу разобраться, что теперь делать.
0
Эксперт .NET
 Аватар для Usaga
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,388
07.11.2023, 12:16
Лучший ответ Сообщение было отмечено 1inkin1 как решение

Решение

Цитата Сообщение от 1inkin1 Посмотреть сообщение
и я хочу разобраться, что теперь делать.
Не использовать этот сильно устаревший подход.

Грид может отображать коллекции произвольных классов. И имена полей возьмёт для имен колонок. Можно это настроить, в коде, без конструктора. Код будет нагляднее и чище. И не надо искать куда в дизайнере что пропало. И данные из базы можно достатать быстро и красиво, каким-нибудь Dapper, без всяких адаптеров.

Правильное решение тут не искать, куда DataSet в дизайнере делся, а поменять подход и вообще забыть про эту штуку.
2
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 14:31  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Правильное решение тут не искать, куда DataSet в дизайнере делся, а поменять подход и вообще забыть про эту штуку
Я, конечно, не продвинутый программист и мне не особо понятны преимущества использования Dapper или EF. Как я написал, используя DataSet в конструкторе, я мог в него забить все нужные таблицы и поля к ним, привязать там же в конструкторе формы BindingSource к нужной таблице в DataSet, а к BindingSource привязать таблицу GridControl и настроить ее отображение. При подключении базы данных, DataSet сразу наполнялся табличными данными и ими можно было управлять и через BindingSource и через GridControl. Нужно добавить или удалить поля - редактируешь DataSet и изменения сразу появляются в GridControl. Dapper и EF же при подключении дают список данных, с которыми тот же BindingSource не работает полноценно, поэтому приходится сначала конвертировать список в таблицу. Да и при внесении изменений класс с полями таблицы нужно перезагружать DataSource подключение в GridControl, чтобы состав полей обновился. В общем, не особо хочется всё переделывать, но раз элемент DataSet удалили, видимо, придется.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,598
Записей в блоге: 1
07.11.2023, 15:03
1inkin1, правой клавишей и выбрать элементы, тоже отсутствует?
Цитата Сообщение от 1inkin1 Посмотреть сообщение
В общем, не особо хочется всё переделывать, но раз элемент DataSet удалили, видимо, придется.
ну как удалили, нет. Работайте программно. Я за dataset. Накидаешь за пару минут и отчет готов. Я уважаю других ораторов, но мне так же он удобен, как и 10 лет назад, для быстрых накидок
1
Заблокирован
07.11.2023, 15:20
Цитата Сообщение от Usaga Посмотреть сообщение
И данные из базы можно достать быстро и красиво, каким-нибудь Dapper, без всяких адаптеров.
Говорят, что два юриста - три мнения. И программисты стали как юристы.
Вот тут в комментариях сомневаются в актуальности и целесообразности Dapper: https://habr.com/ru/articles/665836/
Наверное, это от того, что у каждого свой опыт. И слишком большая вариативность инструментария. Всё течёт, всё изменяется. Только лень человека - неизменный и постоянный его атрибут. Зачем новое, если отлично работает известное тебе старое? Зачем неизвестное тебе старое, если есть новое? Зачем это всё, если папа - олигарх?)
А лень, как известно - двигатель прогресса!

Добавлено через 4 минуты
Проблема выбора инструментария - самая большая проблема, особенно, если ты не проф программист и если не в коллективе. Но это абсолютно не понимают профессионалы, тем более, из больших коллективов. Абсолютно. Иначе издавались бы ежегодные краткие сводные перечни рекомендуемых технологий и инструментов - с учетом специфики применения.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3416 / 2737 / 575
Регистрация: 04.09.2018
Сообщений: 8,597
Записей в блоге: 3
07.11.2023, 15:23
Просто ТС еще не уразумел, что собственные типы гибче. Если от чего-то отказались, тем более в MS, то явно это что-то стало не эффективным.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,598
Записей в блоге: 1
07.11.2023, 15:30
wizard41, микрософт кучу технологий похоронил. Т.к. нужно новое, для бобла. silverlight та жа, что бы не так с ней.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3416 / 2737 / 575
Регистрация: 04.09.2018
Сообщений: 8,597
Записей в блоге: 3
07.11.2023, 15:33
Цитата Сообщение от XIST Посмотреть сообщение
микрософт кучу технологий похоронил
Но не у всех, при этом, нет адекватной замены, тем не менее. Касательно DataSet в том числе. Давноооооо уже не видно этой хрени, особенно в командах.
0
2 / 2 / 2
Регистрация: 13.03.2014
Сообщений: 458
07.11.2023, 15:34  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Если от чего-то отказались, тем более в MS, то явно это что-то стало не эффективным.
Если бы его убрали полностью, я бы тогда и не задавался бы этим вопросом, наверное. НО его убрали только из конструктора формы, а в коде оставили. Поэтому я задаюсь вопросом, а можно ли теперь както подключить BindingSource к DataSet из кода, чтобы передать поля таблицы в GridControl и настроить их отображение в конструкторе. Еще, например, у меня есть приложение с формированием отчетов в FastReport, куда тоже данные отправляются через BindingSource и можно настраивать отображение в отчете нужных полей. Это всё удобно, когда всё визуально и сразу подключается и используется в других элементах интерфейса. А теперь я просто не понимаю, как с этим всем работать через код - будет куча проблем, чтобы всё сделать так как должно быть без конструктора.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,598
Записей в блоге: 1
07.11.2023, 15:35
1inkin1,
а какая версия VS
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3416 / 2737 / 575
Регистрация: 04.09.2018
Сообщений: 8,597
Записей в блоге: 3
07.11.2023, 15:36
Цитата Сообщение от 1inkin1 Посмотреть сообщение
его убрали только из конструктора формы, а в коде оставили
Чем присутствие его в конструкторе облегчает жизнь? Ты не можешь объявить датасет в коде руками?
Цитата Сообщение от 1inkin1 Посмотреть сообщение
а можно ли теперь както подключить BindingSource к DataSet из кода
Всегда можно было. Можно и сейчас.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2023, 15:36
Помогаю со студенческими работами здесь

DataGrid и DataSet и .Net compact
Всем привет! C C# не знаком, но нужно написать простую программулину. Такая проблема! Есть: DataGrid.DataSource =...

Dataset на стороне клиента в ASP.Net
Как можно хранить DataSet и работать с ним на стороне клиента?

Является ли плохим тоном использование DataSet и Xml
В книге по ADO.NET (Сеппа) есть целый раздел посвященный работе с XML через DataSet и наоборот. На одном из форумов была дискуссия о том...

Использование stand-alone DataSet, созданного в визуальном редакторе
Доброго времени суток. Прошу подсказки, ситуация такова: в визуальном редакторе создал DataSet (сразу оговорюсь, что работаю с...

Использование одних данных из DataSet в нескольких формах
Доброе время суток!! Помогите пожалуйста! Я пишу приложение с использованием DataSet и у меня возникла проблемка. Имеется Form1 и Form2....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru