Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView и последняя запись! Проблемы с сохранением последней записи. 
V
    Опции темы
Assamite
  Дата 19.1.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Здравствуйте!
Такая проблемка: есть грид DataGridView заполненный значениями с БД, добавление записей в сам грид происходит с другой формы, визуально все записи в грид добавляются, но при нажатие кнопки Сохранить в БД, все записи кроме последней добавляются, а вот последняя никак. Если грид пустой и добавить только одну запись и нажать Сохранить в БД то она не сохраниться. Получается, последняя запись никак не хочет сохраняться в БД, в чем может быть трабл? smile 
PM MAIL   Вверх
thomas
Дата 19.1.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Assamite, 
Приветствую.
Твой DataGridView через свойство DataSource должен быть связан с таблицей ДатаСета, данные из которой он отображает.
И что бы внести измениения в базу данных нужно вызвать метод Update для DataAdapter для этой таблицы передав ему в качестве параметра соответствующую команду sql(работа без типизипрованного ДатаСет)  или же вызвать метод Update для TableAdapter этой таблицы и  в качестве параметра передать таблицу ДатаСет.(работа с типизированным ДатаСет) 



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Assamite
Дата 19.1.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(thomas @  19.1.2008,  16:11 Найти цитируемый пост)
Твой DataGridView через свойство DataSource должен быть связан с таблицей ДатаСета, данные из которой он отображает.
И что бы внести измениения в базу данных нужно вызвать метод Update для DataAdapter для этой таблицы передав ему в качестве параметра соответствующую команду sql(работа без типизипрованного ДатаСет)  или же вызвать метод Update для TableAdapter этой таблицы и  в качестве параметра передать таблицу ДатаСет.(работа с типизированным ДатаСет) 


thomas, спасибо за ответ!
эт я все делаю.
но при вызове Update для TableAdapter, заносятся все записи, кроме последней. не могу понять почему ?
PM MAIL   Вверх
thomas
Дата 19.1.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Assamite, 
Цитата

при вызове Update для TableAdapter, заносятся все записи, кроме последней. не могу понять почему ? 

Не понятно, что имеется в виду. Добавил в DataGridView несколько записей(строк) и при сохранении в БД, у тебя сохранются(вносятся в таблицу) все эти строки, кроме последней.
Или же, ты к имеющимся в DataGridView строкам добавляешь еще одну и вот она родимая не сохраняется в таблицу БД, а все остальные и так есть в  таблице БД.
Это, как говорят в Одессе, две большие разницы.

Код в студию. 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Assamite
Дата 20.1.2008, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(thomas @  19.1.2008,  18:48 Найти цитируемый пост)
Не понятно, что имеется в виду. Добавил в DataGridView несколько записей(строк) и при сохранении в БД, у тебя сохранются(вносятся в таблицу) все эти строки, кроме последней.
Или же, ты к имеющимся в DataGridView строкам добавляешь еще одну и вот она родимая не сохраняется в таблицу БД, а все остальные и так есть в  таблице БД.
Это, как говорят в Одессе, две большие разницы.


не вижу разницы, между тем и тем, что в первом случае последняя запись не вносится в БД, что во втором последняя запись не вноситься в БД. единственная разница, то что во втором случае запись только одна, но в тоже время она и есть последняя.
объясню на примере:  есть грид в нем 5 записей которые были переданы ему с БД, когда я руками в грид добавляю еще 3 записи и жму Сохранить в БД, то в БД оказывается не 8 записей как должно быть, а 7, получается последняя не сохранилась, а если в грид руками добавляю 1 запись и жму Сохранить в БД, то получаю не 6 записей, а так как и было,  5.

Код

this.table_int_docTableAdapter.Fill(this.sdocdbDataSetDocin.Table_int_doc);


Код

table_in_docTableAdapter.Update(sdocdbDataSetDocin);

PM MAIL   Вверх
_Jesus
Дата 21.1.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.1.2008

Репутация: нет
Всего: нет



Возможно не так ходишь по циклу, выбирая строки из грида для внесения в базу. Она у тебя не выбирает последнюю запись в гриде.
Код

DataGridViewRowCollection rows = dgGrid.Rows;
rows[rows.count-1] // последняя строка в гриде

PM MAIL   Вверх
Assamite
Дата 22.1.2008, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(_Jesus @  21.1.2008,  13:51 Найти цитируемый пост)
Возможно не так ходишь по циклу, выбирая строки из грида для внесения в базу. Она у тебя не выбирает последнюю запись в гриде.


какой цикл? у меня грид связан с BindingSource который в свою очередь с DataSet
а после вызова TableAdapter.Update все сохраняется кроме последней записи!
не могу понять почему?
PM MAIL   Вверх
thomas
Дата 22.1.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Assamite, 
Приветствую.
Первое, вот тут надо бы имя таблицы в ДатаСет дописать.
Код

table_in_docTableAdapter.Update(sdocdbDataSetDocin.Table_int_doc);

А то датасет указал, а таблицу в нем нет.

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




--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Assamite
Дата 23.1.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



thomas , 
Приветствую.

Цитата(thomas @  22.1.2008,  10:05 Найти цитируемый пост)
Второе, если можешь вышли проект и базу, я посмотрю у себя. Может где что и всплывет.

Отослал.
Спасибо за помощь!

PM MAIL   Вверх
thomas
Дата 23.1.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Assamite, 
Приветствую.
Ты забыл две строчки кода написать.
Код

private void tsbtnUpdate_Click(object sender, EventArgs e)
        {
            if (bindingNavigator.BindingSource == bindingSourceDocIN)
            {
                try
                {
//
//Добавь вот эти два метода!
                    this.Validate();
                    this.bindingSourceDocIN.EndEdit();
// далее по плану.
//
                    this.table_in_docTableAdapter.Update(sdocdbDataSet.Table_in_doc);
                    MessageBox.Show("Дані в таблиці вхідних документів успішно змінені! БД успішно оновлена! =:-))");

                }
                catch (Exception err)
                {
                    MessageBox.Show("Помилка! Зміни до БД не відбулись =:_((" + err.Message);
                }
            }
        }

Успехов.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Assamite
  Дата 23.1.2008, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



thomas ,
Приветствую.

Большое спасибо! я очень благодарен за помощь! smile 
PM MAIL   Вверх
thomas
Дата 23.1.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Assamite, 
Да завсегда пожалуйста.  smile 
Если твоя проблема решена, то пометь вопрос как решённый.
Справа вверху на уровне названия темы.
С наилучшими пожеланиями.  smile 

Это сообщение отредактировал(а) thomas - 23.1.2008, 22:59


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.