Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2014, 15:13   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию Как получить первичный ключ из одной таблицы, для вставки в другую.

Уважаемы форумчане!

Подскажите пожалуйста, как извлечь первичный ключ одной таблицы чтобы его потом сохранить в другой.
Есть две таблицы:
таблица Flight с полями (ID, StartFlight, EndFlight)
и
таблица FlightParametrs с полями (ID, ID_Flight, Altitude, Speed, GrossWeight).

На форме заполняю данные для обоих таблиц. Теперь при сохранении - данные с формы перекочуют в таблицу Flight, так же и в таблицу FlightParametrs. Однако как в таблицу FlightParametrs поле ID_Flight вставить значение первичного ключа из таблицы Flight?

Таблицы связаны между собой по полю ID_Flight.
СУБД SQL

Последний раз редактировалось ac1-caesar; 22.05.2014 в 16:18.
ac1-caesar вне форума Ответить с цитированием
Старый 22.05.2014, 15:21   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

как работаете с БД для начала?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.05.2014, 15:22   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

смотря что за поле смотря что за субд
eval вне форума Ответить с цитированием
Старый 22.05.2014, 16:17   #4
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

СУБД SQL. Извиняюсь что сразу не указал
ac1-caesar вне форума Ответить с цитированием
Старый 22.05.2014, 16:29   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

это пять .
eval вне форума Ответить с цитированием
Старый 22.05.2014, 16:39   #6
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

СУБД Microsoft sql server
ac1-caesar вне форума Ответить с цитированием
Старый 22.05.2014, 16:48   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

с этим наконец выяснили
теперь следующие пункты ждемс
eval вне форума Ответить с цитированием
Старый 22.05.2014, 16:58   #8
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
с этим наконец выяснили
теперь следующие пункты ждемс
В таблице FlightParametrs как уже было написано есть поле ID_Flight - что является вторичным ключом и связывается с таблицей Flight по полю ID.

Соль в том что на форме параметры для обоих таблиц. Т.е. пока таблица Flight не получит значения из формы то и индекса не будет. А мне нужно в таблицу FlightParametrs вставить индекс первичного ключа таблицы Flight.
Как то так, я не программист, поэтому могу непонятно излагать. Прошу отнестись с пониманием.
ac1-caesar вне форума Ответить с цитированием
Старый 22.05.2014, 17:17   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

поля бывают разные, есть с констрейнтами есть без
например может быть поле создано как идентити, т.е. автоинкремент, это одно
а может быть и не так, это другое, а может быть и 3-е

отсюда разные подходы в разрешении ситуации

а вам как не программисту следует рассказывать как можно больше и то что спрашивают, это если хотите чтоб помогли
eval вне форума Ответить с цитированием
Старый 22.05.2014, 17:26   #10
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

поле с первичным ключом создано как идентити, т.е. автоинкремент. Я логически понимаю, что последовательность сохранения должна быть, т.е. сначала процедура сохранения таблицы Flight, затем мы получим его индекс и вставим для сохранения таблицу FlightParametrs. Но как это сделать, я не знаю. Вот мой код сохранения:
Код:
private void SAVE_button_Click_1(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=ALEX;Initial Catalog=EPS;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;");
            con.Open();
            SqlCommand flt = new SqlCommand("Insert into [Flight] (StartFlight, EndFlight) VALUES ('" + StartFlight.Text + "','" + EndFlight.Text + "')", con);
            SqlCommand rpwo = new SqlCommand("Insert into [FlightParametrs] (ID_Flight, Altitude, Speed, GrossWeight) VALUES ('" + Altitude.Text + "','" + Speed.Text + "','" + GrossWeight.Text + "')", con);
            
                flt.ExecuteNonQuery();
                rpwo.ExecuteNonQuery();
                
                MessageBox.Show("Records inserted");
                con.Close();
            }
ac1-caesar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заполнить из одной таблицы другую Stylerok Microsoft Office Excel 5 26.01.2014 09:17
Как скопировать данные из одной таблицы в другую? Ольга А Microsoft Office Access 0 29.10.2012 19:46
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Как получить данные из одной открытой книги в другую? gramp Microsoft Office Excel 14 25.07.2011 10:02
макрос для копирования строк из одной таблицы в другую IRI_NA Microsoft Office Excel 9 25.01.2010 20:55