|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Привет всем! Прошу прощение за тупой вопрос, но что только не делал, НИКАК не сохраняются изменения((( (база старая 2000, OleDb) Заранее благодарю ВС ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 04:35 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
А что и как Вы изменяете? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 07:26 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2, 1. Очищаю таблицу. 2. Заполняю её. в адаптере/датасете полностью таблица (не представление) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 09:21 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
v skopin, В отличии от DAO эксеса здесь датасет не имеет связи с исходной таблицей, а является ее копией DataTable (ADO.NET) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 11:27 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2, и что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 15:49 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
как, пусть не датасетом, одну табличку стереть и записать? чёрт с ним, просто записать, стирать можно заказчика заставить ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 16:16 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
v skopinкак, пусть не датасетом, одну табличку стереть и записать? чёрт с ним, просто записать, стирать можно заказчика заставить Д. Сеппа Программирование на MS ADO Net 2.0 или хотя бы msdn, там все есть класс DataAdapter (если пишите поставщиконезависимый код) и/или его наследники. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 16:18 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
v skopinCat2, и что делать? Для начала изучать доки. Куча вариантов. Две категории. Если через TableAdapter.Fill(...), то разными способами вызывать TableAdapter.Update(...) Если нет, например через LINQ или чтением через SQLDataRerader, то придется самому писать обработчик изменения записей. В любом случае обработчик желательно запихать в событие изменения записи DataTable. Заполняем таблицу Код: c# 1.
Создаем событие Код: c# 1. 2.
Обработчик события Код: c# 1. 2. 3. 4.
При этом myTableAdapter должен иметь все 4 команды: SelectCommand, UpdateCommand, DeleteCommand, InsertCommand ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 16:26 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2, А где их брать, то эти адаптеры??? А лучше скажите, как обойти "Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере." это не помогло мне , и попутно: теоретически помогло бы? (базу переделать в 2007) мне до понедельника нужен результат..., простите, но у меня это крик какой-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 23:17 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
v skopin, Почему бы Вам для начала не попробовать поизучать язык? Форум - место для ответов и обсуждений, а не бесплатный преподаватель. Если ничего не понимаете - обратитесь в форум Работа. Там Вам за деньги все сделают. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 00:05 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2, я это всё понимаю, но и самм помогал,но сейчас такая ситуация, что готов и деньги платить... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 11:10 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2v skopinCat2, и что делать? Для начала изучать доки. +100500 :) Cat2Создаем событие Код: c# 1. 2.
Обработчик события Код: c# 1. 2. 3. 4.
Я сильно извиняюсь... Но какой принципиальный смысл вызывать myTableAdapter.Update(myTable) на каждый чих изменения или удаления строки из таблицы? Эта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 12:05 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
sphinx_mvЭта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД. Все равно все изменения будут обрабатываться единичными update-delete-insert для каждой строки и выигрыша в производительности не получится. В однопользовательской системе проблем не будет. Но в многопользовательской актуальная информация должна как можно быстрее попадать в базу, что бы и все другие ее могли получить. Возьмем к примеру, Кадры. Кадровик изменяет фамилии вышедших замуж и сменивших фамилию. Пока он не нажмет кнопку "сохранить изменения", эти изменения в Вашем случае не будут видны никому и они будут полуать инфу со старой фамилией. Это не очень критично для Кадров, но есть и более критичные базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 12:37 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2sphinx_mvЭта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД. Все равно все изменения будут обрабатываться единичными update-delete-insert для каждой строки и выигрыша в производительности не получится. Не совсем так! :) Точнее, ОЧЕНЬ не так... В Вашем случае каждое изменение будет вызывать применение изменений в БД. Даже ошибочное. Даже многократное изменение одной и той же записи... И, возможно, даже отказ от всех выполненых изменений... Соотвественно, количество атомарных операций по сохранению данных в базе может увеличиться в несколько раз - это однозначно отрицательно сказыватся на производительности. Ну, а если учесть возможность в моем варианте обернуть группу одиночных insert-update-delete в единой транзакции - это только плюс к производительности. Cat2В однопользовательской системе проблем не будет. Но в многопользовательской актуальная информация должна как можно быстрее попадать в базу, что бы и все другие ее могли получить. Актуальная информация становится доступной в момент, когда она сохраняется в базе. Другого варианта "актуализации" не существует - при любой схеме обработки. Хоть Вашей, что моей. В Вашем случае, когда в БД фиксируются чуть ли не элементарные изменения полей в записи, "актуальной" может стать очень "неактуальная" информация. В результате другой пользоваль/процесс вполне могут подхватить "чужую" запись с неактуальной информацией - и мы получаем конфликт обновлений... В-общем, в-целом и в-частности, для многопользовательской работы как раз схема с независимым сохранением отдельных записей таблицы не очень годится. Cat2Возьмем к примеру, Кадры. Кадровик изменяет фамилии вышедших замуж и сменивших фамилию. Пока он не нажмет кнопку "сохранить изменения", эти изменения в Вашем случае не будут видны никому и они будут полуать инфу со старой фамилией. Это не очень критично для Кадров, но есть и более критичные базы.Правильно! Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения! И, кстати, кто сказал, что "элементарные" изменения могут быть ограничены только необходимостью сохранения только одной-единственной записи в одной-единственной таблице? "Мастер-деталь" уже не рулит? ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 17:21 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
а я сломался((( данные в текстовик загнал, заказчику объяснил, что Аксес это УГ, с 1000000 записей работает плохо (что, кстати, не далеко от истины, тк с текстовиком работает быстрее) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2012, 13:21 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
АLinq всё прикурил))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 15:39 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
sphinx_mvПравильно! Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения! Это справедливо для данных, которые должны попасть в базу в единой транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 16:57 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2sphinx_mvПравильно! Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения! Это справедливо для данных, которые должны попасть в базу в единой транзакции.С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных. И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 17:18 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
sphinx_mvСоотвественно, количество атомарных операций по сохранению данных в базе может увеличиться в несколько раз - это однозначно отрицательно сказыватся на производительности. Выбрось свою "производительность" на свалку, кому вчера про балк 13497124 мозги вправлял? Вот там действительно производительность. Если бы был сиквел повыше (>= 2008), можно было бы datatable сразу в хп скормить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 17:27 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
sphinx_mvCat2пропущено... Это справедливо для данных, которые должны попасть в базу в единой транзакции.С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных. И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли? Совершенно верно. Однако если единичная транзакция затрагивает только одну строку в базе, то ее обновление должно производится в режиме реального времени, а не дожидатся нажатия кнопки Save. Возьмем, например, всем известный Склад. Получатель выбирает позиции и эти данные должны быть сразу отмечены в базе, что бы никто другой не не смог набрать количество, большее, чем Остаток-Заказы. Когда Получатель все выберет, то в единой транзакции уменьшаются остатки и аннулируется Заказ Получателя. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 20:41 |
|
Как записать dataSet в Access базу?
|
|||
---|---|---|---|
#18+
Cat2sphinx_mvпропущено... С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных. И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли? Совершенно верно. Однако если единичная транзакция затрагивает только одну строку в базе, то ее обновление должно производится в режиме реального времени, а не дожидатся нажатия кнопки Save. Тут, наверное, необходимо исходить из нескольких посылов... IMHO... Алгоритм сохранения должен быть единообразным как для единичной записи, так и для множества связаных записей - это проще и при проектировании/разработке, и для пользователей - им не надо помнить как в каждой из многих частей системы работает процесс сохранения данных... Логически сохранение выполняется не для "записи" как таковой, а для некоторой "сущности", весь процесс сохранения данных которой должен быть выполнен внутри транзакции - даже если эта "сущность" физически состоит из одной записи. Решение о необходимости сохранения или отмены изменений данных в БД все-таки должно приниматься человеком-оператором... Cat2Возьмем, например, всем известный Склад. Получатель выбирает позиции и эти данные должны быть сразу отмечены в базе, что бы никто другой не не смог набрать количество, большее, чем Остаток-Заказы. Это - спорный или, по крайней мере, очень неоднозначный вопрос... Если мы хотим, чтобы соблюдалось выдвигаемое Вами требование, мы должны полностью заблокировать текущие остатки товара в момент начала формирования заказа. Это означает, что другие пользователи доступ к ним иметь не будут, пока первый пользователь не закончит вводить и сохранит заказ или вообще просто отменит заказ... Весьма не гуд... К тому же по заказам вполне может быть указано товаров больше, чем есть в наличии на складе на "сейчас". На недостающий товар всего лишь планируется ближайшее пополнение склада, а заказчики, которым не хватило текущего остатка в самом худшем случае получают его чуть позже... Логистика, однако... Выдать со склада "по документам" (а "по факту" это невозможно сделать) больше, чем есть в наличии - вот это да, как бы "низззя"... Но и делаться это уже может на основе, как минимум, предварительно подготовленных (на основе данных все тех же заказов) "болванок", которые вообще могут быть сформированы полностью автоматически "по-ордерно" в строгом соответствии с требованиями "коротких транзакций"... Cat2Когда Получатель все выберет, то в единой транзакции уменьшаются остатки и аннулируется Заказ Получателя. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 00:39 |
|
|
start [/forum/topic.php?fid=20&fpage=187&tid=1405618]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
135ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 258ms |
0 / 0 |