|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
Добавление данных из DataGridView в базу данных access07.05.2020, 16:51. Показов 8500. Ответов 62
Нужно добавить все строки, кроме заголовков столбцов из DataGridView в базу данных access
наоборот получаеться а обратно никак.
0
|
||||||
| 07.05.2020, 16:51 | |
|
Ответы с готовыми решениями:
62
Добавление записи из Datagridview в базу данных mysql
Добавление данных в базу SQL и DataGridView из нескольких окон |
|
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
|
|||
| 09.05.2020, 21:15 | |||
![]() Он грамотный ,хороший .Ругается только когда делу мешает ))) Но по поводу "отказаться от access" подумайте.
0
|
|||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
|||
| 09.05.2020, 21:28 [ТС] | |||
|
Да и базу открывал из VS записи тоже нет, ни во время запущеного приложения, ни после выхода из приложения в чем заноза. Добавлено через 7 минут c access я это делал поэтомй и выбрал ее. А запросы я так понимаю во все базы одинако пишуться.
0
|
|||
|
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
|
|||
| 09.05.2020, 21:58 | |||
|
Ищите в этом направлении. Там есть определённые проблемы с кодировкой, но решаемые, если вдумчиво подойти (вы , я заходил на ваш профиль,интересуетесь джавой, для вас не должно быть сильно сложно, хотя там си....но где-то рядом) Запросы пишутся одинаково , только транскрипция разная : "Слов не много, всего лишь пяток, но какие из них комбинации" (с) А.Иванов
0
|
|||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
| 09.05.2020, 22:29 [ТС] | ||||||
|
Создал новое тестовое приложение
скопировал код по добавлению записей. Записи добавляються. Но исчезают после нового запуска приложения. Добавлено через 3 минуты Вот код
0
|
||||||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
|
| 09.05.2020, 22:45 [ТС] | |
|
Вот открыл базу из папки \source\repos\WindowsApp3\bin\Debug\DB
Из VS при открытии базы записей нет
0
|
|
| 09.05.2020, 23:01 | ||
Чуть не описался от смеха. Kulma, респект!По поводу перехода на SQLite и ему подобные, дело конечно Ваше, но при хорошо отлаженном алгоритме добавления, обновления и удаления данных, сам источник данных большого значения не имеет. Aleks_36, я Вам настоятельно рекомендую на время отладки кода сочетать просмотр БД при помощи Access и изменение БД кодом. Вот только не забывайте на время работы кода закрывать таблицы в Access, а то он зараза блокирует доступ. Возможно проблемы с обновлением в этом
0
|
||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
|
| 10.05.2020, 00:50 [ТС] | |
|
Прикол после компиляции кода все нормально работает.
Все записывает в базу и сохраняет. Наверное у VS такой прикол при отладке не трогать базу. А я часа четыре уже код прочесываю. Добавлено через 32 минуты 496 записей 2.5 минуты грузит в базу можно ли ускорить ? или прогресс бар приделывать красивый но прогресс бар уже другая тема
0
|
|
|
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
|
||||||||
| 10.05.2020, 08:28 | ||||||||
|
У меня за это время при "прямой вставке в лоб" вливается в базу порядка 500000 позиций. Но тут много сторонних факторов, то как загруженность процессора , объём оперативки и т.д. Плюс , возможно, даёт тормоза access своими внутренними механизмами.Это предположение,т.к. от него давно отказался и проверять желания нет. Что можно посоветовать попробовать сделать, чтобы ускорить : Для начала воспользуйтесь советом Uswer и вынесите из цикла создание OleDbCommand()
Уже подзабыл процессы access, но по логике , если нет индекса в счётчике (поле Код в вашем случае) перед вставкой новой записи БД должна прочесть все предыдущие записи в этом поле, найти последнюю и присвоить номер следующей- не быстрая процедура.. Вообще без индексов access, в прочем как и любая другая СУБД, очень неповоротлив. Добавлено через 16 минут Uswer и вынесите из цикла создание У меня в SQLite поиск по таблице, где 42000000 записей, с выводом референсов , т.е. поиск по поиску , с выводом результата в listview, т.е прорисовкой, занимает примерно 0,5 -2 секунды. Ни одна СУБД, разве что мускул, при равных условиях индексов, схеме запроса и т.д. не показала такого результата по скорострельности. SQLite не самая моя любимая СУБД- очень много оговорок, но надо отдать должное - при правильном подходе, правильном построении индексов (она к слову очень тормозит при составных индексах) очень резвая. При этом очень компактная. Если при заливке 42000000 с индексацией MSSQL занимает примерно 13-15 Гб , MySql - 6 Гб , то SQLite при тех же условиях -3,5 Гб. Про access молчу , он просто не поднимет такие объёмы данных.
0
|
||||||||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
| 10.05.2020, 17:51 [ТС] | ||||||
|
Сейчас после изменений.
496 записей около 1 минуты грузит в базу
0
|
||||||
| 10.05.2020, 20:23 | ||||||||||||||||
|
Попробуйте заменить
0
|
||||||||||||||||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|
| 11.05.2020, 01:12 | |
|
Aleks_36, Kulma, Uswer, надо использовать транзакции, а не тупо миллион команд INSERT "в лоб" посылать в базу.
На форуме есть примеры того, как добавлять данные в базу через транзакции. Я в своих проектах использовал, миллион(ы) команд довольно быстро посылались в базу, даже а слабых компах, потому что не "в лоб" а пачкой, а сама СУБД уже разруливает, что, куда и как ей делать
0
|
|
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
| 11.05.2020, 08:07 [ТС] | ||||||
|
Не работает.
Сообщение = Ссылка на объект не указывает на экземпляр объекта. Чего ему не хватает?
0
|
||||||
|
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
|
|||
| 11.05.2020, 08:35 | |||
|
из datagridview и её вставка. И потом , транзакция не ускоряет процесс , а позволяет избегать потерю данных в случае непредвиденного обрыва соединения или ещё какого-нибудь форс-мажора. Aleks_36, уберите транзакцию , не слушайте грамотного дядю )))) И в том виде , как вы её написали она работать не будет по определению, т.к. вы её объявляете за пределами цикла , где собственно весь процесс вставки и происходит. Aleks_36, индексы в табличке сделайте , как я писал выше.
1
|
|||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||
| 11.05.2020, 11:52 [ТС] | ||
|
Насчет поисковых полей посмотрю .
0
|
||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|
| 11.05.2020, 13:54 | |
|
Kulma, ну если так, тогда делайте без транзакций, хозяин - барин
![]() Aleks_36, А по поводу ошибки в отсутствии ссылки - у вас в DataGridView случайно не стоит свойство .AllowUserToAddRow? если да, то перед началом цикла - отключите, а после отработки - включите обратно. ну и еще, убедитесь, что ячейки не содержат NULL значений, тоесть .Value <> Nothing, это видимо и есть причины воникновения вышеизложенной ошибки Добавлено через 1 минуту Aleks_36, вы бы указывали строку, на которой возникает ошибка, чтобы было понятно в какую сторону копнуть для ее решения
0
|
|
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||
| 11.05.2020, 23:48 [ТС] | ||
|
А есть способ борьбы с NULL значенниями? В свойствах DataGridView в свойствах RowDefaultCellStyle значеннию NULL.Value=нет данных установил но это никак не помогает хотя пустые ячейки заполнены значеннием "нет данных"
0
|
||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|||||||||||
| 12.05.2020, 04:13 | |||||||||||
|
Aleks_36, поставьте точки останова и проследите момент возникновения ошибки, ну и соответственно узнаете, в каких местах у вас пустота.
ну или, попробуйте, проверять ячейку в момент чтения значения:
а еще, если уж так не хочется транзакцию использовать, ведь можно сформировать строку запроса в БД из НЕСКОЛЬКИХ последовательных запросов. Вот только не все СУБД это поддерживают. Тоесть сделать так(как пример):
1
|
|||||||||||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
| 12.05.2020, 17:28 [ТС] | ||||||
|
Сделал так работает но на скорость передачи в моем случае не влияет Kulma +1, был прав.
0
|
||||||
| 12.05.2020, 18:04 | |||
|
Я присоединяюсь к
А вот с этим я НЕ согласен. Кстати, было бы неплохо услышать грамотных дядь по поводу первого абзаца этого ответа. Будет ли неопределённость транзакции?
0
|
|||
|
42 / 1 / 0
Регистрация: 21.04.2020
Сообщений: 111
|
||||||
| 13.05.2020, 01:05 [ТС] | ||||||
|
Ура со скоростью загрузки решено.
Загружаеться незаметно около 1сек была одна минута. Надо было вот так запрос написать.
0
|
||||||
| 13.05.2020, 01:05 | |
|
Как сохранить данные из DataGridView в базу данных Access? Удаление строки datagridview и сохранение в базу данных access Добавление из Textbox в БД Access с обновлением данных в DataGridView Как сделать обновление, удаление, добавление в базу данных Access Как программно добавить запись в базу данных access через datagridview? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|