Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
1

Добавить данные в таблицу с Foreign Key

21.02.2014, 16:58. Просмотров 1203. Ответов 10
Метки нет (Все метки)

Проблема в следующем, не могу понять, как добавлять данные в таблицу в которой есть Foreign key.
В обычную добавляется все без проблем, делаю
C#
1
project_akDataSet1.Tab1.AddField1Row(textBox1.Text, Int32.Parse(textBox2.Text));
а при добавлении в таблицу с FK получается
C#
1
project_akDataSet1.Tab1.AddTab1Row(p1,Int32.Parse(textBox2.Text));
где p1 должно быть что-то типа project_akDataSet.Tab1Row parentTab2RowByFK_Tab1_Field1
Как правильно получить значение p1?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 16:58
Ответы с готовыми решениями:

Конфликт инструкции INSERT с ограничением FOREIGN KEY
вот код using System; using System.Collections.Generic; using System.ComponentModel; using...

SQLite, Foreign Key - нормализовать таблицы по 2-му типу
Всем привет. У меня есть таблица, в которую я загружаю приходы товара. Всё отлично работает, но...

Конфликт инструкции INSERT с ограничением FOREIGN KEY
Конфликт инструкции INSERT с ограничением FOREIGN KEY "FK_komnaty_klienty". Конфликт произошел в...

Конфликт инструкции INSERT с ограничением Foreign Key
Здравствуйте! В БД есть таблица, в которой содержатся внешние ключи с разрешенным значением NULL....

Как заполнить колонку listview по foreign key?
Интересует способ выводить название отдела (departments.name) по foreign key (DepartmentsId)...

10
Danila_Bagrov
-13 / 30 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 20:08 2
Цитата Сообщение от artushenko Посмотреть сообщение
project_akDataSet.Tab1Row parentTab2RowByFK_Tab1_Field1
это что за страшная строчка?)
проверяйте, что бы значение не было пустым, что бы тип данных соответствовал типу в таблице.
0
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
21.02.2014, 20:12  [ТС] 3
Danila_Bagrov, типы полей в таблицах совпадают, через программу HeidiSql нормально добавляется.
А эту страшную строчку пишет VS в качестве подсказки.
0
Danila_Bagrov
-13 / 30 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 20:23 4
Цитата Сообщение от artushenko Посмотреть сообщение
Как правильно получить значение p1?
судя по
Цитата Сообщение от artushenko Посмотреть сообщение
project_akDataSet1.Tab1.AddTab1Row(p1,Int32.Parse(textBox2.Text));
вы добавляете строчку, значит, вам надо не получать, а задавать ее. FK обязательный параметр, но он может и повторяться, при этом, он должен быть и в другой таблице. вы непонятно описали суть проблемы.
на сколько я понимаю, значение в таблицу не пишется и вылетает ошибка. типы полей совпадают, а типы данных? C# в некоторых случаях может ругаться, если вы передаете int в char или datetime в int.
с какой БД вы работаете?
0
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
21.02.2014, 21:14  [ТС] 5
Danila_Bagrov, бд mysql, ошибка выдается на этапе компиляции.

вот скрин из проекта
http://www.cyberforum.ru/attachment....1&d=1393002651

вот скин с FK
http://www.cyberforum.ru/attachment....1&d=1393002740
0
Миниатюры
Добавить данные в таблицу с Foreign Key   Добавить данные в таблицу с Foreign Key  
Danila_Bagrov
-13 / 30 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 21:27 6
а что за ошибка, если не секрет?)
0
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
21.02.2014, 21:48  [ТС] 7
Danila_Bagrov, если ставлю String значения.
0
Миниатюры
Добавить данные в таблицу с Foreign Key  
Danila_Bagrov
-13 / 30 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 21:54 8
сотрудникиRow.ToString() или сотрудникиRow.Value
вообще, ячейка это набор данных в которых содержится сведения о типе, размере и т.д. обратите внимание на это. попробуйте явно указать тип данных, если проблема не в этом, то покажите код где вы присваиваете переменным значения и где пишете в базу. если кода не шибко много, то скиньте по максимум.
0
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
21.02.2014, 22:16  [ТС] 9
Danila_Bagrov, изначально я думал брать значение из comboBox.Text, но у меня ничего не получилось
C#
1
avtoservis_meleshko_akDataSet1.ЗаказНаряд.AddЗаказНарядRow(comboBox1.Text, comboBox2.Text, comboBox3.Text, dateTimePicker1.Text, comboBox4.Text);
у первых трех параметров должны быть типы:
avtoservis_meleshko_ak.avtoservis_meleshko_akDataSet.СотрудникиRow
avtoservis_meleshko_ak.avtoservis_meleshko_akDataSet.АвтомобилиRow
avtoservis_meleshko_ak.avtoservis_meleshko_akDataSet.ЗапчастиRow
как мне значение string преобразовать в них я не понимаю
0
Danila_Bagrov
-13 / 30 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 22:22 10
C#
1
2
            OleDbCommand cm = new OleDbCommand("SELECT ** FROM ** WHERE ** = ?", cn);
            cm.Parameters.Add("name", this.comboBox1.Text.ToString());
в конце значения указываете в какой тип конвертировать
1
artushenko
3 / 3 / 1
Регистрация: 04.08.2011
Сообщений: 38
21.02.2014, 23:07  [ТС] 11
Таким хитрым образом так ничего и не получилось.
Сдался и пошел простым путем, вставил в таблицу SQL-скрипт
SQL
1
INSERT INTO `заказнаряд` (`Табельный`, `ГосНомер`, `КодЗапчасти`, `Дата`, `Ремонт`) VALUES (@Табельный, @ГосНомер, @КодЗапчасти, @Дата, @Ремонт)
и через
C#
1
заказНарядTableAdapter.InsertQuery(Convert.ToInt32(comboBox1.Text), comboBox2.Text, Convert.ToInt32(comboBox3.Text), dateTimePicker1.Text, comboBox4.Text);
все добавляется без проблем.
0
21.02.2014, 23:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 23:07

mssql 2012, foreign key constraint внутри таблицы
Конструкция типа дерева tagParentId ссылается на tagId. А каскадное удаление записей...

Ошибка при INSERT. Нарушение FOREIGN KEY constraint.
Выползает вот такая ошибка: System.Data.SqlClient.SqlException: The INSERT statement conflicted...

Как задать кастомное называние для foreign key поля?
Есть две таблицы class Request { public int RequestId { get; set; } public...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru