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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где хранятся данные через XSD dataset? 
:(
    Опции темы
Dims
Дата 16.2.2011, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я делаю так.

У меня создана файловая база данных MS SQL EXPRESS и лежит она прямо в проекте. Она открыта в ServerExplorer. В проект добавлена сущность ...DataSet.xsd, на которую я перетаскиваю объекты базы данных, которые мне нужны.

Когда мне надо присоединить элемент управления к таблице (например, список), я выбираю нужную таблицу в его свойстве DataSource. При этом мастер автоматически создаёт для меня на форме два невидимых объекта, один типа BindingSource и прописывает его в свойстве DataSource элемента управления, а другой -- типа что_то_моёTableAdapter, который использует в своём коде.

Правильно?

Всё это приводит к глюкам.

Во-первых, если я обновляю данные в базе через хранимую процедуру, то они сами собой не обновляются в форме. 

Во-вторых, изменённые данные не попадают в базу данных, то есть, если я открываю таблицу в Server Explorer, то не вижу там внесённых изменений.

И, в третьих, самое удивительное: если я перезапущу программу, то она ВИДИТ изменения, которые внесла, но при этом в базе данных (через Server Explorer) их по-прежнему нет!

Отсюда я делаю вывод, что существует, по крайней мере, два каких-то временных места хранения данных, помимо основной базы в SQL сервере. Одно из этих мест отображается программой, пока я с ней работаю. Другое -- обновляется при вызове хранимой процедуры, сохраняется между вызовами программы в каких-то временных файлах и переносится в первое хранилище только при запуске программы.

Не просветит ли меня всезнающий ол, что это за хранилища и каким образом можно принудительно инициировать передачу информации между ними? Может быть, можно каким-то образом не использовать или отключать часть этих хранилищ, а то, получается, программа работает со снапшотом а не с базой.
PM MAIL   Вверх
Dims
Дата 16.2.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



P.S.

Для перекачивания из второго места в первое я нашёл способ -- метод Fill.

Например, есть у меня таблица Work, содержимое которой меняется при помощи хранимой процедуры. Когда я после вызова этой хранимой процедуры делаю

workTableAdapter.Fill(workTrackerSimple3DataSet.Work);

то визуально в форме появляется та информация, которая была внесена хранимой процедурой.

Всё-таки непонятно, как хранимая процедура может работать, но не вносить изменения в основную базу!? Что же, мастер прочитал её текст и закодировал эквивалент на C#? И когда я вызываю хранимую процедуру, то вызываю не серверный её вариант, а эквивалент на C#? Абсурд.

Добавление команды
workTableAdapter.Update(workTrackerSimple3DataSet.Work);

(сразу после предыдущей) и выглядит нелепым и не помогло ситуации -- в базе по прежнему нет новых данных.

Наверное, какая-то транзакция открывается, а потом откатывается... Но как её найти?

Добавлено через 3 минуты и 28 секунд
Блин, эта тварь, похоже, копирует MDF файл при отладке...
PM MAIL   Вверх
Dims
Дата 16.2.2011, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



В общем, победил эту бадягу...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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