DataSet TableAdapter Fill Метод - PullRequest
       0

DataSet TableAdapter Fill Метод

0 голосов
/ 17 сентября 2011

У меня есть DataSet с двумя адаптерами таблиц (отношение 1 ко многим), который был создан с помощью мастера настройки Visual Studio 2010.

Я звоню во внешний источник и заполняю словарь результатами. Эти результаты должны быть все записи в базе данных. Чтобы синхронизировать БД, я не хочу просто очищать все таблицы, а затем снова заполнять их, как отбрасывать таблицы и создавать их с новыми данными в sql.

Есть ли чистый способ, возможно, с использованием метода TableAdapter.Fill (), или мне нужно циклически проходить между двумя таблицами и решать, останется он или будет удален, а затем добавить новые записи? Как лучше всего сделать так, чтобы данные в словаре были единственными данными в моих двух таблицах с помощью DataSet?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2011

Может случиться так, что быстрее заполнить всю таблицу, чем пройти через нее и решить, какую запись оставить / остаться.Не могли бы вы решить, удаляются ли записи с помощью оператора SQL?(Удалить из таблицы, где active = false), если вы хотите, чтобы они оставались в базе данных, но не в наборе данных (выберите * из таблицы, где active = true)

Вы можете иметь поле даты и выбрать все записи, которыебыли добавлены с даты вашего последнего «объединения» базы данных (выберите * из таблицы, где active = true и дата добавлена> # 12: 30 #)

0 голосов
/ 17 сентября 2011

Первый вопрос: если это одна и та же БД, почему у вас две таблицы с одинаковой информацией?

К вопросу: этот размер зависит от размеров. Если таблицы не велики, используйте транзакцию, очистите таблицу (DELETE * FROM TABLE и т. Д.) И снова введите туда свои данные. С другой стороны, если таблицы большие, возникает вопрос: можете ли вы загрузить все это в свой словарь?

Конечно, вы должны спросить себя, что происходит с противоречивыми данными (другой пользователь / приложение изменило данные, пока они были в вашем словаре).

Если это займет много времени, вы можете вспомнить, что вы сделали с данными - это означает: пометить измененные данные и запомнить удаленные ключи и новые вставленные строки и сделать обновления на основе этого.

И того, и другого можно достичь, запомнив Заполненную таблицу данных и используя ее в качестве вспомогательного поля, или реализовав свои собственные механизмы.

В любом случае, я бы порекомендовал подумать над проблемой: вам действительно нужен словарь? Почему бы не сделать запросы к базе данных, чтобы получить данные? Или только для быстрого доступа к части данных?

PS: метод обновления на вашем DataAdapter сделает всю работу (изменение измененного, удаление удаленного и вставка новых datarows, но обновит DataTable / Set, так что это будет работать только один раз)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...