Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 13.04.2010
Сообщений: 25

Обновление DataTable

05.03.2011, 18:04. Показов 5265. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте нужна помощь. Есть База с таблицами, данные в которую заносятся с XML файла. Я создал в конструкторе VS датаадаптер который выбирает данные из 2 таблиц базы. Но когда база пуста и я загружаю в неё данные то в третей(выбраные адаптером ) данные появляются только после перезапуска программы. Как сделать что бы они появлялись сразу после загрузки данных.
И ещё вопрос у меня на форме есть 3 кнопки загрузка(загрузка в базу из XML) обновление:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void Obnovlenie()
        {
            try
            {
                тМЦBindingSource.EndEdit(); тМЦTableAdapter.Update(database1DataSet.ТМЦ);
                //данныеBindingSource.EndEdit(); данныеTableAdapter.Update(database1DataSet.Данные);
                остатокBindingSource.EndEdit(); остатокTableAdapter.Update(database1DataSet.Остаток);
            
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Не сохранено");
            }
        }
и очистка :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void Ochictka()
        {
            try
            {
                database1DataSet.Данные.Clear();
                database1DataSet.Остаток.Clear();
                database1DataSet.ТМЦ.Clear();
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Невозможно выполнить!");
            }
        }
если загрузить данные и обновить то потом не удаляется (то-есть с таблиц данные пропадают жму обновить перезапускаю программу данные не удалились)подскажите как сделать ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2011, 18:04
Ответы с готовыми решениями:

Обновление таблицы базы данных из DataTable
Приветствую всех. Вот какая проблема надо обновлять таблицу база данных данными из datatable делал так SQLiteCommand command =...

Обновление DataTable после изменения DataAdapter
Здравствуйте, возникла такая проблема: есть строка с CheckBoxом при изменении его значения мы записываем его в БД ...

Обновление DataGridView для отображения данных из нового DataTable
Доброго времени суток. У меня проблема с DataGridView. Вообщем есть БД Access. Я из этой бд загружаю данные в DataTable согласно запросу...

4
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
05.03.2011, 18:43
Цитата Сообщение от student2012 Посмотреть сообщение
если загрузить данные и обновить то потом не удаляется (то-есть с таблиц данные пропадают жму обновить перезапускаю программу данные не удалились)подскажите как сделать ?
Причин может быть много. Наиболее вероятная - загрузка и уделение данных в БД происходит в изолированой транзакции, которая контролится адаптером и срабатывает при закрытии приложения(а это скорее всего так и происходит).

Совет: Не используйте DataAdapter.
0
1 / 1 / 1
Регистрация: 13.04.2010
Сообщений: 25
05.03.2011, 19:26  [ТС]
А почему тогда данные после очистки обновления и перезапуска программы остаются?
и если не использовать адаптер ТО КАК ?
А да ещё если очистить обновить снова загрузить то при попытке обновить ловит исключение типа нарушена уникальность ключа.

Добавлено через 31 минуту
Цитата Сообщение от sigmov Посмотреть сообщение
Причин может быть много. Наиболее вероятная - загрузка и уделение данных в БД происходит в изолированой транзакции, которая контролится адаптером и срабатывает при закрытии приложения(а это скорее всего так и происходит).

Совет: Не используйте DataAdapter.
Если удалять построчно то всё работает.
0
10 / 10 / 1
Регистрация: 27.04.2010
Сообщений: 37
06.03.2011, 03:05
Если я всё правильно понял то при загрузки твоей формы должен быть сгенерирован код
выглядит он как то так
C#
1
2
3
4
5
6
 private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "storeDataSet.Sizes". При необходимости она может быть перемещена или удалена.
            this.sizesTableAdapter.Fill(this.storeDataSet.Sizes);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "storeDataSet.Stock". При необходимости она может быть перемещена или удалена.
            this.stockTableAdapter.Fill(this.storeDataSet.Stock);
чтобы после сохранения твои Адаптеры обновились,вставь нужные тебе строки кода в конец кнопки сохранить.
0
1 / 1 / 1
Регистрация: 13.04.2010
Сообщений: 25
06.03.2011, 14:32  [ТС]
Попробовал сделать так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
try
            {
                database1DataSet.ТМЦ.Clear();
                database1DataSet.Остаток.Clear();
                database1DataSet.Данные.Clear();
                Obnovlenie();
                this.остатокTableAdapter.Fill(this.database1DataSet.Остаток);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "database1DataSet.ТМЦ". При необходимости она может быть перемещена или удалена.
            this.тМЦTableAdapter.Fill(this.database1DataSet.ТМЦ);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Невозможно выполнить!");
            }
Никаких изменений только теперь даже с датагрида ничего не пропадает
сделел так работает но медленно
:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try
            {
                for (int i = 0; i < database1DataSet.Данные.Rows.Count; i++)
                {
                    database1DataSet.Данные.Rows[i].Delete();
                }
                for (int i = 0; i < database1DataSet.Остаток.Rows.Count; i++)
                {
                    database1DataSet.Остаток.Rows[i].Delete();
                }
                for (int i = 0; i < database1DataSet.ТМЦ.Rows.Count; i++)
                {
                    database1DataSet.ТМЦ.Rows[i].Delete();
                }
             
            }
почему не знаю но могу предположить что если очищать данные методом Clear то датасет на видит редактирования и не ставит на сохранение.
И ещё вопрос если можно со второй таблицы удаляется плохо(на второй раз после токго как удалится первая)пишет DELETE COMAND затронула 0 строк я порылся в адаптере 2 таблицы команды DELETE там нет я так понял что конструктор её не сформировал так как в таблице нет ключа. Сутки парюсь ничего путнего не нашёл мож кто подскажет как правильно его сформировать в конструкторе Если тупо выбрать все колонки та же ошибка требует условие с параметрами я вобще не разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2011, 14:32
Помогаю со студенческими работами здесь

Массовая вставка/обновление таблицы сервера данными из DataTable (DataSet)
Есть DataSet ( таблица в DataSet.Tables: ID-ключ, NAME, PROVIDER) И таблица dbo.NT с аналогичной структурой на сервере MSSQL. Как...

Как из одного datatable перенести столбец в другой datatable?
Здравствуйте! Кто может подсказать: как из одного datatable перенести столбец в другой datatable?

Обновление связанных сущностей (каскадное обновление)
Доброго времени суток. У меня возникла проблема с обновлением сущности и связанной с ней сущности. Подход к созданию бд -...

datatable
можно ли заполнить один столбец datatable из разных столбцов разных таблиц (тип данных одинаковый)? Если да то как?

Datatable в бд
Форумчане хэээлп! Выгружаю я данные в datatable вывожу их в datagridview,подскажите пожалуйста как мне иудалять и обновлять данные? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru