Вход на сайт
.Net - вправьте, плс, мне мозги...
1759 просмотров
Перейти к просмотру всей ветки
Вообщем отдохнул Я... весьма неплохо... теперь пора возвращаться к работе...
И так имеем:
Среда - Studio 2005 (FW 2.0) + MS SQL 2005
Требуется элементарное - сформировать запись и воткнуть ее в базу.
Читаем доку - для операций с данными рекомендуется нечто под названием DataSet.
Ну раз рекомендуется - пользуем. Берем дизайнер, строим простейший однотабличный
типизированный DataSet. Дизайнер попутно создает еще несколько файликов/класов
(мне они, в принципе, не интересны по причине их автогенерации, но будем помнить
что они есть).
Читаем доку дальше.
Поскольку табличка в DataSet'е есть, построим для нее адаптер с командами для Select,
Insert, Update и Delete. Опять никаких проблем все построено, класс сгенерен.
Читаем доку дальше.
Каждый DataSet имеет метод AcceptChanges(). Метод предназначен для фиксации изменений
в DataSet'е. Вроде все сделано и понятно...
Теперь пишем элементарный код - объект, создает DataSet, манипулирует имеющейся в
нем табличкой и добавляет (как это делается описывать не буду - на такие мелочи как
сначала получить запись из таблицы, потом ее же обратно добавить - вы и сами знаете)
туда запись. Потом вызывается AcceptChanges() и... как вы догадываетесь изменения не
сохраняются в базе...
Ладушки, роем доку дальше... Оказывается, что для сейвинга требуется SqlDataAdapter с командами.
Но, блин, Я же их задал создав *DataSetTableAdapters!!! Приходится лезть в сгенерированные
файлики и смотреть что же там есть... Как ни странно - там есть все что надо... С одним НО -
все что надо находится в одельном классе, который еще обернут отдельным Namespace'ом и
который, естественно, надо создавать и использовать...
Загрузка - аналогично, созданием инстансов двух различных классов.
Еще раз обращаю внимание - создавался типизированный DataSet... В соотвествии с моими
представлениями об типизации и ООП - должен был уметь save/load куда указано, в частности на
MS SQL... Изменений, чтобы это именно так и работало - 3-5 строк...
Вообщем - прочистите мне мозги - что-то Я совсем запарился с биллиными поделками... :(
И так имеем:
Среда - Studio 2005 (FW 2.0) + MS SQL 2005
Требуется элементарное - сформировать запись и воткнуть ее в базу.
Читаем доку - для операций с данными рекомендуется нечто под названием DataSet.
Ну раз рекомендуется - пользуем. Берем дизайнер, строим простейший однотабличный
типизированный DataSet. Дизайнер попутно создает еще несколько файликов/класов
(мне они, в принципе, не интересны по причине их автогенерации, но будем помнить
что они есть).
Читаем доку дальше.
Поскольку табличка в DataSet'е есть, построим для нее адаптер с командами для Select,
Insert, Update и Delete. Опять никаких проблем все построено, класс сгенерен.
Читаем доку дальше.
Каждый DataSet имеет метод AcceptChanges(). Метод предназначен для фиксации изменений
в DataSet'е. Вроде все сделано и понятно...
Теперь пишем элементарный код - объект, создает DataSet, манипулирует имеющейся в
нем табличкой и добавляет (как это делается описывать не буду - на такие мелочи как
сначала получить запись из таблицы, потом ее же обратно добавить - вы и сами знаете)
туда запись. Потом вызывается AcceptChanges() и... как вы догадываетесь изменения не
сохраняются в базе...
Ладушки, роем доку дальше... Оказывается, что для сейвинга требуется SqlDataAdapter с командами.
Но, блин, Я же их задал создав *DataSetTableAdapters!!! Приходится лезть в сгенерированные
файлики и смотреть что же там есть... Как ни странно - там есть все что надо... С одним НО -
все что надо находится в одельном классе, который еще обернут отдельным Namespace'ом и
который, естественно, надо создавать и использовать...
Загрузка - аналогично, созданием инстансов двух различных классов.
Еще раз обращаю внимание - создавался типизированный DataSet... В соотвествии с моими
представлениями об типизации и ООП - должен был уметь save/load куда указано, в частности на
MS SQL... Изменений, чтобы это именно так и работало - 3-5 строк...
Вообщем - прочистите мне мозги - что-то Я совсем запарился с биллиными поделками... :(