|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Как передать в dataGridView2.DataSource массив состоящий из DataRow, который получился в результате выполнения функции GetChildRows? Вот на чем я остановился: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
А вот что из этого вышло: ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2013, 18:15 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
т.е. получается что DataSourse подхватила свойства каждого элемента массива, можно ли как нить крутануть что бы отображалось как норм table, мне где то на глаза попадался там вроде как через какое то приведение типа и при помощи метода GetValue но блин чет немогу его опять найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2013, 18:19 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
это стандартная бд northwind, кто в курсе поля в таблице Orders выглядят иначе, по количеству элементов в подчиненной табл. Orders отбирает правильно но по содержанию берутся свойства не те ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2013, 19:14 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007Как передать в dataGridView2.DataSource массив состоящий из DataRow, который получился в результате выполнения функции GetChildRows? Вы DataRelation определяли сугубо из "внутренней красоты"? Почему не используете его в качестве источника данных дочерней формы. Добавьте в конструктор формы что-то наподобие Код: c# 1. 2.
И прибейте dataGridView1_CurrentCellChanged - он Вам не понадобится. Вообще-то, по моему скромному мнению, использовать в-лоб DataSet в качестве источника данных визуальных компонентов - не очень хорошая идея. Для этого гораздо лучще подходит более универсальное и более функциональное средство - BindingSource. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 00:08 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
sphinx_mv, спасибо большое очень познавательно, т.к. я недавно начал изучать C# хотелось бы изучить все варианты развития ситуаций, к сожалению детальной литературы маловато, даже msdn на который все так любят ссылатся показался мне каким то мутным, поверхностным. До этого изучал Delphi там с этим все четко и понятно, учебников много, из них полных пособий хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 03:02 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
sphinx_mv, ксиаим ваш вариант почему то недоработает "Список потомков для поля Заказы создать нельзя" писал так : Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 12:56 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007sphinx_mv, ксиаим ваш вариант почему то недоработает "Список потомков для поля Заказы создать нельзя" писал так : Код: c# 1. 2. 3. 4.
"Меня терзают смутные сомнения" (с), что Вы случайно прибили строку, в которой ds.Relations.Add(rel); ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 19:42 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
sphinx_mv, ой кажись заработало, спасибо, я вот думаю если такая музыка (ну вроде все работает) то зачем этот bindingsourse ? Какие он еще дополнительные функции может предоставить ? и вообще где почитать какие именно свойства источника данных может предоставлять binding meneger ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 21:27 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007, Хватит издеваться над собой и остальными. К чему, ну к чему выгружать на клиента ВСЕ записи по работникам + ВСЕ записи по заказам? А если записей работников 50 000 и заказов 200 000 ? Эдак никаких волостей не напасёшься ( (С) Жорж Милославский - "Иван Васильевич меняет профессию"). В смысле памяти... Выбирайте нужные записи работников, по событию изменения позиции в таблице работников, выбирайте из базы принадлежащие ему заказы. Не надо идти "неправильным" путём... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 21:29 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007sphinx_mv, ой кажись заработало, спасибо, я вот думаю если такая музыка (ну вроде все работает) то зачем этот bindingsourse ? Какие он еще дополнительные функции может предоставить ? и вообще где почитать какие именно свойства источника данных может предоставлять binding meneger ? Ну всё там-же в MSDN ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 21:31 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, ткните плиз где можно почитать про правильный путь, ну то биш как правильно проектировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2013, 23:38 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007Alex Kuznetsov, ткните плиз где можно почитать про правильный путь, ну то биш как правильно проектировать? А в GOOGLE Вас забанили? И на хабр доступ закрыт? Ну и наконец: http://www.books.ru/razrabotka-9001489/ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 07:30 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
авторЭдак никаких волостей не напасёшься ( (С) Жорж Милославский - "Иван Васильевич меняет профессию"). В смысле памяти... Ай молодца. В смысле цитаты, дюже как хороша. авторА если записей работников 50 000 и заказов 200 000 ? Если у меня на борту 8 - 16 Gb RAM, то этих волостей как у "дурака махорки". :) Это к тому, что правильный подход/не правильный подход - понятия ой как относительные. Просто помним, что технология ADO.NET - предполагает буферизацию выбранных из БД данных в ОЗУ. А вот в каком собственно объеме делать эту самую буферизацию надо решать уже разработчику/архитектору/модельеру по месту... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 10:27 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
2megazoid007 Один вопрос, просто любопытно. А почему на форме не вижу такого компонента как BindingNavigator? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 10:30 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Alex KuznetsovК чему, ну к чему выгружать на клиента ВСЕ записи по работникам + ВСЕ записи по заказам? А если записей работников 50 000 и заказов 200 000 ?Для учебно -тестовых задач - пофиг! База данных northwind ( 14500829 ) - cтандартный сэмпл для MSSQL... Alex KuznetsovЭдак никаких волостей не напасёшься ( (С) Жорж Милославский - "Иван Васильевич меняет профессию"). В смысле памяти... Выбирайте нужные записи работников, по событию изменения позиции в таблице работников, выбирайте из базы принадлежащие ему заказы."Вы не поверите" (с), но существует достаточное количество случаев, когда "выбирать нечего" - например, при добавлении новых данных и, тем более, когда используется отложенное сохранение данных в базе. Опять же. Никто не запрещает "нарисовать" запрос, который при выполнении вернет ограниченный набор (например, 10-100-1000 записей) из "родительской" таблицы и все связанные с ними данные из "дочерних" таблиц. Это гораздо лучше, чем "положить" сервер кучей мелких запросов, когда по каждому изменению указателя на "родительский" идентификатор выполняются запросы к базе для получения "дочерних" записей... И не забываем про то, что пользователь может изменить что-то в "предыдущем" дочернем наборе данных, и с этими изменениями "что-то нужно делать" (с). Alex KuznetsovНе надо идти "неправильным" путём... В программировании нет "неправильных" путей. В зависимости от данной конкретной ситуации (и данного конкретного проекта) есть пути, которые могут (но очень не факт) лучше подойти. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 11:09 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Ermak, sphinx_mv, так-то да, Вы правы, если памяти на клиенте как у дурака махорки, да ограничение по выбору, да у вас толстый-претолстый канал, да сервера не нагружены, то конечно, можно делать и так как хочет автор, вот только нарисовано у него было: megazoid007... Код: sql 1. 2. 3.
... А если это вэб приложение? Тоже всё вытаскивать при каждом запросе? И пофигу, что база учебная Northwind. Надо сразу привыкать разрабатывать нормально. Кстати, очень хорошо, что автор задаёт на форуме вопросы и спрашивая советов, пытаясь что-то делать, и сталкиваясь с трудностями, а не просто на шару. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 12:31 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Alex KuznetsovErmak, sphinx_mv, так-то да, Вы правы, если памяти на клиенте как у дурака махорки, да ограничение по выбору, да у вас толстый-претолстый канал, да сервера не нагружены, то конечно, можно делать и так как хочет автор, вот только нарисовано у него было: megazoid007... Код: sql 1. 2. 3.
... А пофиг, что написано в запросе! :) Топик-стартер озвучил свою непосредственную проблему - и текст использованого (в примере) запроса к ней НИКАКОГО прямого отношения не имеет. :) Alex KuznetsovА если это вэб приложение? Тоже всё вытаскивать при каждом запросе?Вот когда у топик-стартера будет веб-приложение - тогда и поговорим... А до тех это - обсуждение сферического коня в жидком вакууме... Тем более, что это Ваше возражение актуально очень не для любого веб-проекта - там вполне разные варианты и ситуации бывают... При этом (я сильно подозреваю), что с принципиальной необходимостью ограничения набора выбираемых данных с сервера топик-стартер ознакомлен. Вы же не предполагаете, что при разработке приложений для работы с базами данных в Delphi используются какие-то "более другие" требования в этом плане... :) Alex KuznetsovИ пофигу, что база учебная Northwind. Надо сразу привыкать разрабатывать нормально. Для учебно-исследовательско-тестовых "проЭктов" - это всего лишь "один из" и никак не "самый главный" аргумент! Более того: в "учебных" и "исследовательских" проектах чем больше "говнокода", тем лучше. Это позволяет быстрее (самое главное, кстати, требование в этом случае) ознакомиться с конкретной конструкцией или функционалом, позволяя не сильно заморачиваться на "идеальной архитектуре". У ТСа сейчас и стоит задача научиться использовать конструкции и инструментарий языка и среды. Если с этим будет "не все в порядке", то никакие "правильные" SQL-запросы не спасут. То есть - ВООБЩЕ. И тут даже "правильная" архитектура не поможет... Ну, а когда придет время писать "на заказ", то и тут все до элементарного просто: либо сам научится писать "правильно" (набив синяки и шишки), либо "старшие товарищи" направят в нужном направлении... Либо (в самом плохои случае) бросит это "неблагодарное дело"... :) Alex KuznetsovКстати, очень хорошо, что автор задаёт на форуме вопросы и спрашивая советов, пытаясь что-то делать, и сталкиваясь с трудностями, а не просто на шару.Ну, тут +100500 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 13:10 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Ermak, даже не знаю тут чисто на эмоциональном плане он меня раздражает, мне например нравится навигация по таблице просто скролам ,кликами, даблкликами, если делать кнопки навигации то свои "красивые", "большие" это как мне кажется как сейчас модно говорить "юзабилити". sphinx_mv очень точно раскрыл мою ситуацию. )) Рас народ завелся тогда подкину еще пару вопросов если не возражаете )) Допустим есть основная форма на которой отображены данные какой нить основной сущности (таблица), по даблклику по записи в таблице или нажатию кнопки "Редактировать" планируется что бы запускалось модальное окно для редактирования данных, вопрос как организовать логику редактирования и сохранения изменений: объекты подключения и хранения выборки данных расположить на главной форме, а при создании дочерней просто указать ссылку на Owner а потом через неё общаться с главной форма (взять данные, оправить в базу по средством главной формы) , либо может написать класс который будет передавать данные и возвращать, а быть может быть у модального окна реализовать логику валиддата отправки на сервер ? что будет счится профессионально и признаком хорошего тона ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2013, 21:28 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
megazoid007... Допустим есть основная форма на которой отображены данные какой нить основной сущности (таблица), по даблклику по записи в таблице или нажатию кнопки "Редактировать" планируется что бы запускалось модальное окно для редактирования данных, вопрос как организовать логику редактирования и сохранения изменений: объекты подключения и хранения выборки данных расположить на главной форме, а при создании дочерней просто указать ссылку на Owner а потом через неё общаться с главной форма (взять данные, оправить в базу по средством главной формы) , либо может написать класс который будет передавать данные и возвращать, а быть может быть у модального окна реализовать логику валиддата отправки на сервер ? что будет счится профессионально и признаком хорошего тона ?Зависит от размера и архитектуры приложения. В принципе вынесение редактирования отдельной записи в отдельное окно - это нормально. Работа с редактируемой информацией, в данном случае, может быть организована несколькими способами: 1. Выбор записи по идентификатору для редактирования, непосредственно валидация и вызов сохранения информации - всё это может происходить непосредственно в форме редактирования - обычно подходит для небольших приложений. 2. Форма - просто отображалка и валидация ввода, работа с редактируемой записью сущности идёт на уровне отдельного объекта не привязанного к форме. Объект может быть создан с помощью различных механизмов (фабрика объектов, просто объект, модуль данных и т.д.). Обычно подходит для приложений небольшого и среднего размера и порядка. 3. Форма - просто отображалка и валидация ввода, работа с редактируемой записью сущности идёт посредством обращения к серверу приложений. Вся бизнес логика обработки данных лежит в сфере ответственности сервера приложений, хранение данных отделено от логики их обработки. Обычно используется для крупных решений, масштаба предприятия (ERP системы). Естественно, что после того, как окно с редактируемой записью закрывается, то нужно обновить таблицу. Т.е. смысл в том, что форма, содержащая таблицу, не должна знать как редактировать конкретную запись, эта форма лишь вызывает форму редактирования. На самом деле всё зависит от архитектуры решения, от того, насколько сложна база и сущности, с которыми приходится работать. А также немаловажен вопрос поддержки всего этого безобразия в будущем с учетом возможного развития системы. Наверняка коллеги подкинут ещё идей по возможностям организации работы в данной ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2013, 06:52 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
Alex Kuznetsov, все понятно, спасибо большое, очень помогли ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2013, 17:00 |
|
Как передать в dataGridView2.DataSource массив из DataRow ?
|
|||
---|---|---|---|
#18+
автор даже не знаю тут чисто на эмоциональном плане он меня раздражает, мне например нравится навигация по таблице просто скролам ,кликами, даблкликами, если делать кнопки навигации то свои "красивые", "большие" это как мне кажется как сейчас модно говорить "юзабилити". Понятно. Просто использование BindingNavigator'a, как мне кажется, прояснит основную суть BindingSource. "Вот такая загогулина получается". И конечно же наличие навигатора никак не ограничивает ваши потребности в навигации просто скроллами, кликами и т.д., а вот информировать пользователя о кол. строк в гриде и его текущей позиции в гриде как бы нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 03:58 |
|
|
start [/forum/topic.php?fid=20&msg=38315448&tid=1404412]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 498ms |
0 / 0 |