Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обновить данные в таблице после вставки в бд? / 23 сообщений из 23, страница 1 из 1
04.03.2014, 11:53
    #38577562
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Всем привет, более подходящего форума не нашел, а проблема такая: после инсерта в БД не обновляется примари_кей в таблице на форме, т.е. если закрыть и открыть формочку -то все ок, а чтобы сразу после инсерта, то все значения обновились а пк -1. БД Firebird 2.5.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private void m_Save() 
        {
            try
            {
                dIAMETR_ROBOCHOGO_KOLESADataGrid.UpdateData();
                dIAMETR_ROBOCHOGO_KOLESABindingSource.ResetBindings(true);
                dIAMETR_ROBOCHOGO_KOLESATableAdapter.Update(dataSet.DIAMETR_ROBOCHOGO_KOLESA);
                //dataSet.DIAMETR_ROBOCHOGO_KOLESA.Clear();
                //dIAMETR_ROBOCHOGO_KOLESATableAdapter.Fill(dataSet.DIAMETR_ROBOCHOGO_KOLESA);
            }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
private void btOkDm_Click(object sender, EventArgs e)
        {
            m_Save();
            try
            {
                Plugin.diametrKolesa = (Int32)dIAMETR_ROBOCHOGO_KOLESADataGrid.ActiveRow.Cells["ID"].Value;
                Plugin.stringDiametrKolesa = dIAMETR_ROBOCHOGO_KOLESADataGrid.ActiveRow.Cells["DIAMETR"].Value.ToString();
            }


Какие есть варианты?
...
Рейтинг: 0 / 0
04.03.2014, 12:22
    #38577596
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
cr0Какие есть варианты?

Fill раскомментировать
...
Рейтинг: 0 / 0
04.03.2014, 12:25
    #38577600
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallaris, Не помогает
...
Рейтинг: 0 / 0
04.03.2014, 12:28
    #38577611
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Попробуй тогда
Код: c#
1.
2.
DataGrid.DataSource = null;
DataGrid.DataSource = myBindingSource;
...
Рейтинг: 0 / 0
04.03.2014, 12:29
    #38577614
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
После Fill, конечно
...
Рейтинг: 0 / 0
04.03.2014, 12:41
    #38577635
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallaris, Теперь когда так
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private void m_Save() 
        {
            try
            {
                dIAMETR_ROBOCHOGO_KOLESADataGrid.UpdateData();
                dIAMETR_ROBOCHOGO_KOLESABindingSource.ResetBindings(true);
                dIAMETR_ROBOCHOGO_KOLESATableAdapter.Update(dataSet.DIAMETR_ROBOCHOGO_KOLESA);
                dIAMETR_ROBOCHOGO_KOLESATableAdapter.Fill(dataSet.DIAMETR_ROBOCHOGO_KOLESA);
                dIAMETR_ROBOCHOGO_KOLESADataGrid.DataSource = null;
                dIAMETR_ROBOCHOGO_KOLESADataGrid.DataSource = dataSet.DIAMETR_ROBOCHOGO_KOLESA;
            }


То ексепшн при выборе строки: Object reference not set to an instance of an object
...
Рейтинг: 0 / 0
04.03.2014, 12:54
    #38577651
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
А чего не

cr0 dIAMETR_ROBOCHOGO_KOLESADataGrid.DataSource = dIAMETR_ROBOCHOGO_KOLESABindingSource
...
Рейтинг: 0 / 0
04.03.2014, 13:09
    #38577671
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
В частности для MSSQL для InsertCommand студия генерит такую InsertCommand
Код: c#
1.
2.
this._adapter.InsertCommand.CommandText = "INSERT INTO [Znachenie] ([Izmer], [Param_ID], [DataProv_ID]) VALUES (@Izmer, @Param_ID, @DataProv_ID);"+
"\r\nSELECT ID, Izmer, Param_ID, DataProv_ID FROM Znachenie WHERE (ID = SCOPE_IDENTITY())";


т.е. вторая команда после INSERT это SELECT.
Но SCOPE_IDENTITY() эта функция MSSQL она возвращает последний сгенерированный ID.

Можно если нет такой функции, но если у таблицы есть уникальный ключ, то по этому ключу также выдернуть нужный SELECT
...
Рейтинг: 0 / 0
04.03.2014, 13:09
    #38577672
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Тогда не надо делать Fill, сразу после Update все обновляется.
...
Рейтинг: 0 / 0
04.03.2014, 13:10
    #38577675
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallaris,

Спасибо исправил, тот же самый ексепшн
...
Рейтинг: 0 / 0
04.03.2014, 13:12
    #38577677
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
fortibransa,

Проблема в том, что используется firebird а не мс
...
Рейтинг: 0 / 0
04.03.2014, 13:13
    #38577682
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
cr0fortibransa,

Проблема в том, что используется firebird а не мсЕсли есть уникальный ключ (не автогенер ID), то можно по нему выдернуть нужное.
...
Рейтинг: 0 / 0
04.03.2014, 13:17
    #38577690
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
fortibransa,

Ок, и как его тогда в моем случае получить? Вот мой запрос
Код: sql
1.
INSERT INTO DIAMETR_ROBOCHOGO_KOLESA (DIAMETR) VALUES (?)
...
Рейтинг: 0 / 0
04.03.2014, 13:18
    #38577694
Syrex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Может в FireBird другая переменная для получения нового ID ?
...
Рейтинг: 0 / 0
04.03.2014, 13:19
    #38577695
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
cr0Pallaris,

Спасибо исправил, тот же самый ексепшн

Ну давай полный текст эксепшена, а то гадальный шар не работает сегодня.
...
Рейтинг: 0 / 0
04.03.2014, 13:20
    #38577697
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
cr0fortibransa,

Ок, и как его тогда в моем случае получить? Вот мой запрос
Код: sql
1.
INSERT INTO DIAMETR_ROBOCHOGO_KOLESA (DIAMETR) VALUES (?)



INSERT INTO DIAMETR_ROBOCHOGO_KOLESA (DIAMETR) VALUES (?) RETURNIN <PRIMARY_KEY_NAME>
...
Рейтинг: 0 / 0
04.03.2014, 13:20
    #38577699
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
*RETURNING
...
Рейтинг: 0 / 0
04.03.2014, 13:26
    #38577708
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallaris,

Неа, при Execute query
...
Рейтинг: 0 / 0
04.03.2014, 13:30
    #38577715
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
cr0,

заюзай родной фиребирде-provider
...
Рейтинг: 0 / 0
04.03.2014, 13:30
    #38577716
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallariscr0,

заюзай родной фиребирде-provider
http://www.firebirdsql.org/en/net-provider/]

http://www.firebirdsql.org/en/net-provider/] http://www.firebirdsql.org/en/net-provider/
...
Рейтинг: 0 / 0
04.03.2014, 13:32
    #38577721
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Но я б с эксепшеном разобрался - после инсерта перезаполняешь свои биндингсорсы методом Adapter.Fill и все ключевые поля должны быть на месте.
...
Рейтинг: 0 / 0
04.03.2014, 13:34
    #38577725
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Pallaris,

Так и есть после Fill() все поле ID правильно заполнилось, теперь ковыряю сам екссепшн
...
Рейтинг: 0 / 0
04.03.2014, 14:02
    #38577764
cr0
cr0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить данные в таблице после вставки в бд?
Ексепшн был из-за того что, после Fill() АктивРоу становился нул, проблема решена. Большое спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обновить данные в таблице после вставки в бд? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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