Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Данные из БД средствами VS 2005 
:(
    Опции темы
Хоббит
Дата 23.6.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Есть программа... программа манипулирует своими проектами. Данные проета хранятся в БД (Sql Server) около 30 связаных таблиц.
Сейчас к данным обращаюсь так Sql запрос типа select через дата адаптер гружу в DataTable а отуда циклом перегоняю куда надо.

Как мне VS 2005 может помочь в этом случае. Структура таблиц заранее известна а вот имя базы нет. То есть надо конектиться к разным базам.

Я вобще в эти DataSource DataBindings DataMember плохо врубаюсь... так что пожалуйста поподробней... за разумный ответ буду плюсики ставить 
PM MAIL   Вверх
mr.DUDA
Дата 23.6.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Цитата(Хоббит @  23.6.2006,  18:00 Найти цитируемый пост)
Я вобще в эти DataSource DataBindings DataMember плохо врубаюсь... так что пожалуйста поподробней... за разумный ответ буду плюсики ставить 

Что мешает одноимённый раздел в мсдн почитать ? Хотя бы на русском ? (есть мсдн руссиш)

цитировать весь мсдн тут не смогу smile, а вкратце ...

1) снимок базы данных грузится адаптером в датасет (не вся БД, а только часть записей нескольких таблиц по результату запроса);
2) так, чисто для clear understanding: датасет - набор таблиц и DataRelation-ов (связей между таблицами);
3) механизм data binding-ов позволяет связать поле таблицы со свойством объекта, в частности - со свойством формы, контрола, текстбокса, колонки грида, комбобокса и т.п.;
4) биндинг работает автоматически, и в обе стороны - любое изменение в датасете отражается в привязанном свойстве, и наоборот - любое редактирование свойства (внимание!) по завершении редактирования - ложится в датасет
4.1) если в таблице одна запись - то всё просто: значения ячеек отображаются на bound-свойство;
4.2) если несколько записей - всегда есть текущая запись; какая же текущая - определяется возможностями bound-объектов: например, если мапить на датасет только текстбоксы, то текущей будет всегда только первая (можно, конечно, программно двигаться текущую запись, но это детали); если же например грид или листбокс - то текущая запись автоматически будет изменяться вслед за изменением выделенной строки;
5) advanced: при наличии в датасете DataRelation-ов, связи между таблицами отражаются на привязанных свойствах; может быть только одна "корневая" таблица (из неё торчат остальные связи) - соответственно, если есть два грида, которые биндятся на две связанные по relation таблицы датасета, то при перемещении в первом гриде по записям "корневой" таблицы, во втором 
гриде будут автоматически показываться "дочерние" записи связанной таблицы;
6) сохранить изменения можно, вызвав соотв. метод адаптера и скормив ему датасет либо копию датасета, содержащую только изменившиеся записи (DataSet.GetChanges);
7) для справки: свойство DataSource задаёт датасет, к которому привязывается bound-свойство объекта; свойство DataMember - определяет имя таблицы датасета, к которой привязывается bound-свойство -- это подходит только для объектов, которые умеют отображать таблицы - например для гридов; для прочих же млекопитающих свойство DataSource должно быть равно уже конкретной таблице датасета, а DataMember - имени поля (колонки таблицы);
8) также для справки: механизм data binding позволяет связывать с bound-пропертями не только датасеты, но и произвольные объекты, реализующие определённый интерфейс.  


--------------------
user posted image
PM MAIL WWW   Вверх
Хоббит
Дата 24.6.2006, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



спасибо. Почти все знал.
Проблема теперь сводиться в описание методов обслуживающих DataBinding для моего собственного класса ну или реализация в нем нео бходимого интерфейса .....
Проще в ручную все записать ...а потом обратно (SELECT  INSERT UPDATE DELETE) и ни каких DataAdapter 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0794 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.