powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как записать dataSet в Access базу?
21 сообщений из 21, страница 1 из 1
Как записать dataSet в Access базу?
    #38040796
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Прошу прощение за тупой вопрос, но что только не делал, НИКАК не сохраняются изменения(((
(база старая 2000, OleDb)

Заранее благодарю ВС
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38040835
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А что и как Вы изменяете?
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38040909
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,
1. Очищаю таблицу.
2. Заполняю её.
в адаптере/датасете полностью таблица (не представление)
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38041125
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
v skopin,

В отличии от DAO эксеса здесь датасет не имеет связи с исходной таблицей, а является ее копией

DataTable (ADO.NET)
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38041722
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,
и что делать?
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38041776
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как, пусть не датасетом, одну табличку стереть и записать? чёрт с ним, просто записать, стирать можно заказчика заставить
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38041785
Фотография Местный король Делфей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v skopinкак, пусть не датасетом, одну табличку стереть и записать? чёрт с ним, просто записать, стирать можно заказчика заставить
Д. Сеппа Программирование на MS ADO Net 2.0 или хотя бы msdn, там все есть
класс DataAdapter (если пишите поставщиконезависимый код) и/или его наследники.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38041816
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
v skopinCat2,
и что делать?
Для начала изучать доки.

Куча вариантов.
Две категории.

Если через TableAdapter.Fill(...), то разными способами вызывать TableAdapter.Update(...)

Если нет, например через LINQ или чтением через SQLDataRerader, то придется самому писать обработчик изменения записей.

В любом случае обработчик желательно запихать в событие изменения записи DataTable.

Заполняем таблицу
Код: c#
1.
myTableAdapter.Fill(myTable);




Создаем событие

Код: c#
1.
2.
myTableRow.RowChanged += myTableRowChanged;
myTableRow.RowDeleted += myTableRowChanged;



Обработчик события

Код: c#
1.
2.
3.
4.
void myTableRowChanged(object sender, myTableRowChanged e) 
{
                    myTableAdapter.Update(myTable);
}



При этом

myTableAdapter должен иметь все 4 команды: SelectCommand, UpdateCommand, DeleteCommand, InsertCommand
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042305
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

А где их брать, то эти адаптеры??? А лучше скажите, как обойти "Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере." это не помогло мне , и попутно: теоретически помогло бы? (базу переделать в 2007)
мне до понедельника нужен результат..., простите, но у меня это крик какой-то...
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042314
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
v skopin,

Почему бы Вам для начала не попробовать поизучать язык?
Форум - место для ответов и обсуждений, а не бесплатный преподаватель.

Если ничего не понимаете - обратитесь в форум Работа. Там Вам за деньги все сделают.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042441
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

я это всё понимаю, но и самм помогал,но сейчас такая ситуация, что готов и деньги платить...
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042459
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2v skopinCat2,
и что делать?
Для начала изучать доки.
+100500 :)
Cat2Создаем событие
Код: c#
1.
2.
myTableRow.RowChanged += myTableRowChanged;
myTableRow.RowDeleted += myTableRowChanged;

Обработчик события
Код: c#
1.
2.
3.
4.
void myTableRowChanged(object sender, myTableRowChanged e) 
{
                    myTableAdapter.Update(myTable);
}

Я сильно извиняюсь...
Но какой принципиальный смысл вызывать myTableAdapter.Update(myTable) на каждый чих изменения или удаления строки из таблицы?
Эта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042475
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
sphinx_mvЭта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД.
Все равно все изменения будут обрабатываться единичными update-delete-insert для каждой строки и выигрыша в производительности не получится.

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

Возьмем к примеру, Кадры.

Кадровик изменяет фамилии вышедших замуж и сменивших фамилию. Пока он не нажмет кнопку "сохранить изменения", эти изменения в Вашем случае не будут видны никому и они будут полуать инфу со старой фамилией. Это не очень критично для Кадров, но есть и более критичные базы.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38042607
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2sphinx_mvЭта штука имеет смысл быть вызвана, когда весь блок обаботки данных DataTable уже закончен и эти изменения нужно зафиксировать в БД.
Все равно все изменения будут обрабатываться единичными update-delete-insert для каждой строки и выигрыша в производительности не получится.
Не совсем так! :)
Точнее, ОЧЕНЬ не так...
В Вашем случае каждое изменение будет вызывать применение изменений в БД. Даже ошибочное. Даже многократное изменение одной и той же записи... И, возможно, даже отказ от всех выполненых изменений...
Соотвественно, количество атомарных операций по сохранению данных в базе может увеличиться в несколько раз - это однозначно отрицательно сказыватся на производительности.
Ну, а если учесть возможность в моем варианте обернуть группу одиночных insert-update-delete в единой транзакции - это только плюс к производительности.
Cat2В однопользовательской системе проблем не будет. Но в многопользовательской актуальная информация должна как можно быстрее попадать в базу, что бы и все другие ее могли получить.
Актуальная информация становится доступной в момент, когда она сохраняется в базе.
Другого варианта "актуализации" не существует - при любой схеме обработки. Хоть Вашей, что моей.
В Вашем случае, когда в БД фиксируются чуть ли не элементарные изменения полей в записи, "актуальной" может стать очень "неактуальная" информация. В результате другой пользоваль/процесс вполне могут подхватить "чужую" запись с неактуальной информацией - и мы получаем конфликт обновлений...
В-общем, в-целом и в-частности, для многопользовательской работы как раз схема с независимым сохранением отдельных записей таблицы не очень годится.
Cat2Возьмем к примеру, Кадры.

Кадровик изменяет фамилии вышедших замуж и сменивших фамилию. Пока он не нажмет кнопку "сохранить изменения", эти изменения в Вашем случае не будут видны никому и они будут полуать инфу со старой фамилией. Это не очень критично для Кадров, но есть и более критичные базы.Правильно!
Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения!
И, кстати, кто сказал, что "элементарные" изменения могут быть ограничены только необходимостью сохранения только одной-единственной записи в одной-единственной таблице? "Мастер-деталь" уже не рулит? ;-)
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38043073
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я сломался((( данные в текстовик загнал, заказчику объяснил, что Аксес это УГ, с 1000000 записей работает плохо (что, кстати, не далеко от истины, тк с текстовиком работает быстрее)
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38045522
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АLinq всё прикурил)))
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38045711
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
sphinx_mvПравильно!
Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения!
Это справедливо для данных, которые должны попасть в базу в единой транзакции.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38045749
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2sphinx_mvПравильно!
Специально для фиксации изменений в БД существует очень большая кнопка "Save" или для отмены сохранения данных не менее большая кнопка "Cancel". И только нажатие на эти кнопки делает информацию правильной/достоверной или отменяет выполненные пользователем изменения!
Это справедливо для данных, которые должны попасть в базу в единой транзакции.С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных.
И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли?
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38045765
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvСоотвественно, количество атомарных операций по сохранению данных в базе может увеличиться в несколько раз - это однозначно отрицательно сказыватся на производительности.
Выбрось свою "производительность" на свалку, кому вчера про балк 13497124 мозги вправлял? Вот там действительно производительность. Если бы был сиквел повыше (>= 2008), можно было бы datatable сразу в хп скормить.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38045993
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
sphinx_mvCat2пропущено...

Это справедливо для данных, которые должны попасть в базу в единой транзакции.С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных.
И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли?
Совершенно верно. Однако если единичная транзакция затрагивает только одну строку в базе, то ее обновление должно производится в режиме реального времени, а не дожидатся нажатия кнопки Save.
Возьмем, например, всем известный Склад. Получатель выбирает позиции и эти данные должны быть сразу отмечены в базе, что бы никто другой не не смог набрать количество, большее, чем Остаток-Заказы.

Когда Получатель все выберет, то в единой транзакции уменьшаются остатки и аннулируется Заказ Получателя.
...
Рейтинг: 0 / 0
Как записать dataSet в Access базу?
    #38046219
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2sphinx_mvпропущено...
С учетом того, что любое изменение данных должно выполняться в рамках транзакции, то, соответственно, это касается ЛЮБЫХ изменений данных.
И мы ВСЕГДА должны помнить главное правило при многопользовательской работе с данными: транзакции должны быть как можно короче. Не так ли?
Совершенно верно. Однако если единичная транзакция затрагивает только одну строку в базе, то ее обновление должно производится в режиме реального времени, а не дожидатся нажатия кнопки Save.
Тут, наверное, необходимо исходить из нескольких посылов... IMHO...

Алгоритм сохранения должен быть единообразным как для единичной записи, так и для множества связаных записей - это проще и при проектировании/разработке, и для пользователей - им не надо помнить как в каждой из многих частей системы работает процесс сохранения данных...

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

Решение о необходимости сохранения или отмены изменений данных в БД все-таки должно приниматься человеком-оператором...
Cat2Возьмем, например, всем известный Склад. Получатель выбирает позиции и эти данные должны быть сразу отмечены в базе, что бы никто другой не не смог набрать количество, большее, чем Остаток-Заказы.
Это - спорный или, по крайней мере, очень неоднозначный вопрос...

Если мы хотим, чтобы соблюдалось выдвигаемое Вами требование, мы должны полностью заблокировать текущие остатки товара в момент начала формирования заказа. Это означает, что другие пользователи доступ к ним иметь не будут, пока первый пользователь не закончит вводить и сохранит заказ или вообще просто отменит заказ... Весьма не гуд...

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

Выдать со склада "по документам" (а "по факту" это невозможно сделать) больше, чем есть в наличии - вот это да, как бы "низззя"... Но и делаться это уже может на основе, как минимум, предварительно подготовленных (на основе данных все тех же заказов) "болванок", которые вообще могут быть сформированы полностью автоматически "по-ордерно" в строгом соответствии с требованиями "коротких транзакций"...
Cat2Когда Получатель все выберет, то в единой транзакции уменьшаются остатки и аннулируется Заказ Получателя.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как записать dataSet в Access базу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]