Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Есть WPF приложение,есть Datagrid,есть DataSet(сгенерированный VS из таблиц БД SQL). Может кто-нибудь показать пример как обновить данные в БД из измененного DataGrid(пользователь сам меняет данные в ячейках) по нажатию на кнопку хотя бы с помощью стандартного метода Update?) Поскольку ничего из того что работало в WinForms не работает... Например, вот так выглядит DataGrid в Xaml: Код: plaintext Вот так я создаю DataTable и Adapter: Код: plaintext 1. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. Заранее спасибо всем за помощь и понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 12:57 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Имеется в виду DataGrid из WPF, язык C#, база данных MsSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:01 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
soros26, вообще-то это автоматически через байндинг ( two way binding) должно работать, покажите, как он определён ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:04 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:06 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Bob Dylansoros26, вообще-то это автоматически через байндинг ( two way binding) должно работать, покажите, как он определён Насколько я знаю, two way позволяет обновлять данные в DataTable из различных контролов/источников. Но обновить данные в самой БД с помощью binding не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:16 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
soros26, верно, это из приведённой ссылки: привязаная datatable изменятся автоматически, но этого, конечно, мало, нужно вызавать dataadapter.Update почитайте статью, разберитесь, там всё доходчиво описано When the user edits the Customers data within the DataGrid, the bound in-memory DataTable is updated accordingly. However, these updates are not automatically written back to the database. It is up to the developer to decide when changes to the DataTable are written back to the database depending on the requirements of the application. For example, in some cases, you might wish to submit a batch of changes via a "Submit" button, or you may wish to have the database updated as the user commits each row edit. In order to support these, the rows that the DataTable contains have a RowState property which indicates whether they contain changes which should be synchronized with the database. The synchronization process is easily achieved via the TableAdapter's Update method. The following example shows how the RowChanged and RowDeleted events can be handled so that changes in the DataTable state are written to the database each time the user changes a row: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:35 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Bob Dylansoros26, верно, это из приведённой ссылки: привязаная datatable изменятся автоматически, но этого, конечно, мало, нужно вызавать dataadapter .Update sorri, имелось в виду table adapter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 13:41 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Bob Dylanhttp://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx Там накручено нереально много лишнего и вычленить что-либо невозможно. Хочется попроще пример:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 20:49 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Все! Разобрался! Всем спасибо, все свободны:) ps: вот например такой xaml Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:26 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Только нужно было сказать, что был создан пользовательский TableAdapter в котором настроены команды на выборку редактирование и удаление записи. Именно благодоря этому все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2011, 00:24 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Адаптеры... Да еще и в впф. Эта жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2011, 07:56 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Сделал все как описано в примерах В принципе все понятно. Но... событие PhysicianRowModified не вызывается... Вот код: Код: plaintext 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. А это класс PhysicianDataProvider.cs Код: plaintext 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. Пробую произвести изменения в гриде и никакой реакции. Событие PhysicianRowModified не дергается. Понимаю что где-то чего-то не подключено, а где и что не могу разобраться. Есть идеи? И еще... Как подключить команду Post на кнопку формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 10:24 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Идея простая - выбросить и забыть Dataset. Для нормальной работы контролов wpf нужны ObservableCollection & INotifyPropertyChanged иначе не будет реакции на изменения и будут значительные тормоза из-за создания в памяти копии коллекции с нужным интерфейсом. List vs ObservableCollection ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 13:43 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Ну я бы не стал сразу списывать DataSet в утиль. После некоторых переделок согласно примера от soros26 все заработало. Но остался вопрос. Почему я должен использовать провайдеров внутри класса формы и не могу вынести их в отдельный класс. Если я таки выношу их не работает событие RowModified и не понятно как использовать кнопки в окне для Post и Delete в гриде, ведь экземпляр класса не создается. Кстати при работе внутри окна проблема с Post решается а вот с Delete еще не разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 14:13 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
iИдея простая - выбросить и забыть Dataset. Для нормальной работы контролов wpf нужны ObservableCollection & INotifyPropertyChanged иначе не будет реакции на изменения мат часть хотя бы выучил, ... ну или просто жуй, чем говори ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 14:18 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
ШайтанiИдея простая - выбросить и забыть Dataset. Для нормальной работы контролов wpf нужны ObservableCollection & INotifyPropertyChanged иначе не будет реакции на изменения мат часть хотя бы выучил, ... ну или просто жуй, чем говори Шайтан, уверен, что ты до сих пор жуешь dataset'ы и не можешь их проглотить. Для тех кто в танке, перечисленные интерфейсы говорят сами за себя. Использование Dataset дает: - двойное увеличение памяти - снижение скорости заполнения\обновления минимум на порядок - требует дополнительных и утомительных танцев с бубнами для отслеживания событий в коллекции Дальше матчасть для тебя разжевывать некогда. Жуй и не нервничай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 15:09 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
iИспользование Dataset дает: - двойное увеличение памяти - снижение скорости заполнения\обновления минимум на порядок - требует дополнительных и утомительных танцев с бубнами для отслеживания событий в коллекции теоретег, хоть одно подтверждение произнесённому приведёшь? а по поводу бубнов - ну не умеешь пользоваться, дык не берись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 15:13 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
ШайтанiИспользование Dataset дает: - двойное увеличение памяти - снижение скорости заполнения\обновления минимум на порядок - требует дополнительных и утомительных танцев с бубнами для отслеживания событий в коллекции теоретег, хоть одно подтверждение произнесённому приведёшь? а по поводу бубнов - ну не умеешь пользоваться, дык не берись Подтверждение третьему пункту тебе уже продемонстрировали. Подобные бубны - маразм,совершенно лишний код с душком, потенциальная угроза утечек и тд .ObservableCollection делает это все на автомате. Для двух первых в сети полно примеров. Если можешь нетолько жевать, то подобные тесты делаются за полчаса самостоятельно. Если нет нужных интерфейсов, то создается копия в памяти, если не установлена опция OneTime. Подобные вопросы должны исследоваться еще на начальном этапе перехода на wpf. На эту тему есть достаточно четкие рекомендации. Самая главное из них - winforms и wpf - две большие разницы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 15:47 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 15:59 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Ребят я Вижу вы крутые перцы. :-) Лично я с ВПФ работаю чуть больше месяца (хотя общий стаж кодирования очень даже солидный.) Так вот начиная работать с этим я вижу что империя Билли вообще отменяет все концепции сложившиеся годами. Возьмем хотя бы ObservableCollection. Нафига городить огород для того чтобы просто показать данные в простом гриде? Я вообще не понимаю почему не реализован чисто визуальный способ привязки? Это так трудно? Нет обязательно надо напихать кучу классов а потом объявить что для того что бы привязать данные к гриду надо написать код который это все делает, типа заполняет коллекции отслеживает события в них и генерит эти события эти события для того чтобы вызвать уже сами изменения в базу. Ну вот простой пример. Какой процент использования грида для некой коллекций и какой процент для отображения данных непосредственно из БД? Вы уж простите старика но когда тратишь по пол дня что бы понять такую простую вещь у Билли - это начинает раздражать. Вот пусть кто из вас объяснит как добавить кнопку Удалить по которой будет удаляться текучая строка из грида и соответственно из базы данных. только не говорите что сначала удали из базы а потом перечитай грид. Это все равно что телегу запрягать впереди лошади. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:00 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
Если ты давно программируешь, то уже должен привыкнуть к тому, что MS особо не заморачивается с совместимостью. С одной стороны это плохо, но с другой - позволяет переставить лошадь вперед и ехать быстрее, а не тащиться ей за телегой, как это было раньше. wpf ушли от чисто визуального способа привязки и сделали все наоборот. Это позволяет значительно все упростисть, тк нет никакой левой возни с контролами. Посмотри обучающие материалы по MVVM. PS Удалить запись можно только средствами xaml. Для этого есть специальная акция в Blend SDK, но с Dataset этот номер не пройдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:29 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
@автор не знаю на сколько % прав МСУ, но скажу одно, перейдя с Делфи на C# понял, что данным должны быть данными, а гриды, должны быть гридами. иными словами: "не фига смешивать конфеты и котлеты, будет не вкусно"! еще проще: "разделяй и властвуй" - никак к стати! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 22:23 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
уТКа@автор не знаю на сколько % прав МСУ, но скажу одно, перейдя с Делфи на C# понял, что данным должны быть данными, а гриды, должны быть гридами. иными словами: "не фига смешивать конфеты и котлеты, будет не вкусно"! еще проще: "разделяй и властвуй" - никак к стати! Я тоже из обращенных. Но вот именно этого я понять и не могу. Для чего гриды если не для отображения данных? Нет конечно можно их использовать по разному но все же, Это все равно что делать покрышки одного типа для всех марок машин, а потом пытаться пристроить их на диск и от КАМАЗа и от Запорожца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2011, 11:04 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
alex_myznуТКа@автор не знаю на сколько % прав МСУ, но скажу одно, перейдя с Делфи на C# понял, что данным должны быть данными, а гриды, должны быть гридами. иными словами: "не фига смешивать конфеты и котлеты, будет не вкусно"! еще проще: "разделяй и властвуй" - никак к стати! Я тоже из обращенных. Но вот именно этого я понять и не могу. Для чего гриды если не для отображения данных? Нет конечно можно их использовать по разному но все же, Это все равно что делать покрышки одного типа для всех марок машин, а потом пытаться пристроить их на диск и от КАМАЗа и от Запорожца. Правильно. Одна покрышка на все диски не подходит. Грид - самый бестолковый вариант показа данных во многих случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2011, 12:09 |
|
||
|
Как обновить данные в БД из DataGrid
|
|||
|---|---|---|---|
|
#18+
i, ЭЭЭЭ... Ну например надо показать список пациентов 6-й палаты. Вся функциональность заключается в том что доктор должен ткнуть пальцем(В НАШЕМ СЛУЧАЕ МЫШКОЙ) на того кому дадут сегодня электроток. Выбор врача зависит от кучи параметров начиная от с того на какую букву начинается фамилия пациента и кончая результатом анализа мочи. Да еще палата большая там примерно три сотни пациентов ну и как выводить будим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2011, 16:37 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=36746339&tid=1442422]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 194ms |

| 0 / 0 |
