|
databindings для таблицы с inner join'ами
|
|||
---|---|---|---|
#18+
Доброго времени суток! Вопрос скорее теоретический! Есть таблица, например, "книги" и таблица "авторы". Я вывожу в datagridview (через биндинги, адаптер, дататейбл и датасет) таблицу книги, но selectCommand у меня с inner join'ами. Также делаю CommandBuilder, т.к. он работает только с одной таблицей, то для него я делаю другой адаптер, у которого selectCommand = "SELECT * FROM Книги", и по нему строю update и insert для таблицы "книги". Сохраняет без проблем. Но в datagridview после update возвращается строка без фио автора, т.к. ее нет в таблице "книги", она берется из "авторы". Как можно обновить строку в datagridview (точнее, конечно же, в datatable) на основе selectCommand. Пробовал удалить текущую строку после изменения и делать adapter.Fill(dataset, currentindex, 1, "Книги"), пробовал вручную заполнять поля в строке, но некоторые поля readonly и т.д. Может быть есть какие-то "best practices" для таких случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2013, 13:14 |
|
databindings для таблицы с inner join'ами
|
|||
---|---|---|---|
#18+
rubi, какой-то сумбур в изложении темы. Просто похоже на поток сознания... По пунктам разложите, что хотите достичь, что делаете и как, а там поглядим, может чем поможем. Если не трудно, также можно указать какую базу данных используете и пример исходников привести - оно всяко быстрее ответ получится найти... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2013, 20:43 |
|
databindings для таблицы с inner join'ами
|
|||
---|---|---|---|
#18+
Блокнот: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
В DataGridView вижу строчку ИД Название Автор 1 Война и мир Толстой Добавляю строку (не привожу подробности - заполняется строка не в DataGridView, т.к. readOnly, а через textbox'ы и combobox'ы, которые прикручены к datagridview через bindings). При сохранении делаю Код: c# 1. 2. 3.
и в датагридвью вижу новую строку ИД Название Автор 1 Война и мир Толстой 2 Доктор Живаго т.е. автор - пусто, что абсолютно естественно, т.к. _adapterBooks.InsertCommand возвращает данные на базе _baseAdapterBooks, в котором нет объединения с "Авторы". Решение (может конечно не лучшее, но все же): Код: 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.
Можно, конечно, обновить весь DataSource для dgv, но гораздо приятнее экономить ресурсы и обновлять одну единственную строчку. P.S. Прошу прощения за первый невнятный пост. И если будет более интересное решение - тоже буду рад увидеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2013, 22:40 |
|
|
start [/forum/topic.php?fid=20&msg=38233543&tid=1404818]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 345ms |
total: | 486ms |
0 / 0 |