Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/48: Рейтинг темы: голосов - 48, средняя оценка - 5.00
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451

Из DataGridView в DataSet

06.08.2009, 13:33. Показов 9656. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Что-то я уже запуталась. Подскажите, как из DataGridView перекинуть данные в DataSet или DataTable или BindingSource?

Чтобы не запутаться как и я, дальше можно не читать

Мне нужно сохранять данные в xml-файл, но на этот момент неизвестно, отфильтрованы ли они в DataTable или нет (если отфильтрованы, то они в другой DataTable лежат), поэтому я хочу записывать либо содержимое DataGridView (для этого хочу перекинуть данные в DataSet или DataTable), либо создавать дополнительную таблицу и к ней привязывать имеющийся BindingSource (он всегда привязан к отражаемым в данный момент данным, фильтрованные они или нет).

Как лучше сделать?

Пы.Сы.: Непонятности поясню
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2009, 13:33
Ответы с готовыми решениями:

Сохранить данные из DataGridView в DataSet
Есть DataGrideView в который пользователем должна вноситься информация Есть программно созданный DataSet DataSet ds = new DataSet(); ...

обновление данных в dataset|datagridview
допустим у меня в datagridview dgEdit отображена какая-нибудь таблица Rooms и к этому dgEdit-у приписан какой-нибудь sqldataadapter da1 и...

Область видимости, DataSet и DataGridView
Добрый день, уважаемые форумчане. Я недавно начал изучать C#, по-этому имеются некоторые вопросы. Имеется некоторый тестовый код,...

12
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
06.08.2009, 17:18
Лучше хранить данные в DataTable и привязывать их ч/з BindingSource к DataGridView
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
06.08.2009, 19:25  [ТС]
Я так и делаю. Первоначально делаю запрос в базу и записываю результат в DataTableFirst с помощью метода Fill SqlDataAdapter-а. Если применялись фильтры, то результаты помещаются в другую таблицу DataTableFilter. И связываю эти DataTable-сы через BindingSource с DataGridView.

И вдруг пользователь захотел перенести данные в xml-файл. Я не знаю в какой момент это это сделает - когда будет загружена изначальная DataTableFirst или фильтрованная DataTableFilter. Поэтому, при переносе данных в файл я хочу создать еще одну DataTableTemp и уже ее записать в файл. Но для этого мне откуда-то нужно получить данные для этой DataTableTemp. Т.к. я не знаю в какой момент это будет происходить, я и не знаю какую из двух DataTable-сов мне записывать в файл - первоначальную или фильтрованную. Остается два варианта, как мне кажется, - из DataGridView каким-то образом записать данные в дополнительную DataTableTemp или как-то из BindingSource переместить данные в DataTableSource.

Все понятно? А то может это только с моей стороны понятно... Если что - жду вопросов.

Спасибо!
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
07.08.2009, 02:20
Цитата Сообщение от Лакшми Посмотреть сообщение
Если применялись фильтры, то результаты помещаются в другую таблицу DataTableFilter.
Что значит "если применялись фильтры"? И зачем помещать в другую таблицу? Может фильтровать уже имеющуюся? BindingSource.Filter?

Цитата Сообщение от Лакшми Посмотреть сообщение
И связываю эти DataTable-сы через BindingSource с DataGridView
Обе таблицы с одним DataGridView?


Цитата Сообщение от Лакшми Посмотреть сообщение
Я не знаю в какой момент это это сделает - когда будет загружена изначальная DataTableFirst или фильтрованная DataTableFilter
Ответите на предыдущие вопросы и увидите ответ на этот.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
07.08.2009, 18:24  [ТС]
Хм... Вроде ответ писала, не сохранился что ли, или была какая-то ошибка, а я по невнимательности окно закрыла... Ну ладно, повторю.
Цитата Сообщение от Green Посмотреть сообщение
Что значит "если применялись фильтры"? И зачем помещать в другую таблицу? Может фильтровать уже имеющуюся? BindingSource.Filter?
Я не знала, что BindingSource тоже умеет фильтровать, поэтому использовала DataView. Делала так:
C#
1
2
3
4
dataViewFilter = new DataView(dataTableObjects); //dataTableObjects - изначальная таблица
dataViewFilter.RowFilter = "[" + comboBoxFilter.Text + "] LIKE '" + textBoxFilter.Text + "%'";
dataTableFilter = dataViewFilter.ToTable("Filter");//вторая таблица - фильтрованная
bindingSourceObjects.DataSource = dataTableFilter;
Цитата Сообщение от Green Посмотреть сообщение
Обе таблицы с одним DataGridView?
Сначала с гридом связана исходная таблица, а потом фильтрованная. При сбросе фильтра - опять исходная.
Цитата Сообщение от Green Посмотреть сообщение
Ответите на предыдущие вопросы и увидите ответ на этот.
Видимо этот ответ - сортировать с помощью BindingSource? Ага?
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
08.08.2009, 06:00
Цитата Сообщение от Лакшми Посмотреть сообщение
Видимо этот ответ - сортировать с помощью BindingSource?
И да, и нет.
Вот здесь ответ: "При сбросе фильтра - опять исходная."
Если не переделывать имеющееся, то можно добавить переменную-флаг. И управлять ее значением при смене фильтра. Например, возьмем bool. Сначала установим переменную в false. При установке фильтра меняем на true. При сбросе фильтра обратно в false. Таким образом, в любой момент известно какую таблицу сохранять.
Но с BindingSource веселее..
1
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
24.08.2009, 16:55  [ТС]
Веселее? Хм... Как-то меня это настораживает...
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
03.09.2009, 19:45  [ТС]
Блин, Green, я тормозюстр!!! С BindingSource все прооосто элементарно! В одну строку! А я кочевряжилась... Но почему-то он не работает по мере набора текста в TextBox, но особо пока не разбиралась в этом вопросе. И кстати, DataView умеет делать LIKE, а BindingSource походу нет. Как быть в этом случае? И с множественными условиями в BindingSource? В смысле чтобы был фильтр, например, по 2 полям? Пока гуглится тяжело.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
04.09.2009, 06:33
C#
1
BindingSource.Filter="column1='first' and column2='second'";
1
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
07.09.2009, 20:23  [ТС]
Green, спасибо, все замечательно работает!

Но, возвращаясь к своим баранам... Теперь как мне результаты фильтрации (из BindingSource) записать в XML-файл? Это ведь можно сделать только из DataSet или DataTable. Тогда как результаты фильтрации сначала сохранить в DataSet или DataTable? Или как-то по-другому можно сделать?

Пожалуйста, поделитесь опытом!
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
10.09.2009, 12:52  [ТС]
Хм... Ну может тогда создавать вручную DataTable и переносить в нее данные из BindingSource? А может через XmlDocument? Хоть пальцем ткните в каком направлении искать!
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
10.09.2009, 15:10
Цитата Сообщение от Лакшми Посмотреть сообщение
Green, спасибо, все замечательно работает!

Но, возвращаясь к своим баранам... Теперь как мне результаты фильтрации (из BindingSource) записать в XML-файл? Это ведь можно сделать только из DataSet или DataTable. Тогда как результаты фильтрации сначала сохранить в DataSet или DataTable? Или как-то по-другому можно сделать?

Пожалуйста, поделитесь опытом!
через сериализацию можно
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
16.09.2009, 10:14
Можно через метод ataTable.Select(), указав такой фильтр как в BindingSource, получить массив строк и сериализовать полученный массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2009, 10:14
Помогаю со студенческими работами здесь

DataGridView не заполняется из DataTable, с DataSet работает как нужно
Здравствуйте,специалисты! Подскажите пожалуйста, почему datagridview остается пустым? list = "Select * from...

DataSet и DataGridView
Всем доброго времени суток! Есть проблема. Есть база данных, извлек оттуда таблицу в DataSet и не могу записать её ни в TextBox ни в...

DatagridView и DataSet
У меня datagridview заполняется динамически из какого-то списка. В datagridview имеется столбец типа DataGridViewCheckBox. Имеется...

c# dataSet & datagridview
Мне нужно отобразить только некоторые колонки из dataSet в datagridview. При этом я хочу после делать изменения в этих столбцах и сохранять...

Заполнить DataSet из DataGridView
Здравствуйте! Есть DataGridView с большим количеством столбцов, в котором происходят изменения. При нажатии на кнопку все что находится в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru