Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Low12
0 / 0 / 0
Регистрация: 06.05.2017
Сообщений: 14
1

Конфликт инструкции INSERT с ограничением FOREIGN KEY

25.12.2018, 07:11. Просмотров 416. Ответов 4
Метки нет (Все метки)

вот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace Оптовый_склад
{
    public partial class Добавить_приход : Form
    {
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\4 Курс\Курсовой\База\qwe.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        public Добавить_приход()
        {
            InitializeComponent();
        }
 
       
 
        private void Добавить_приход_Load(object sender, EventArgs e)
        {
            this.поставщикиTableAdapter.Fill(this.qweDataSet.Поставщики);
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Вы действительно хотите добавить запись?", "Подтвердите действие", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                con.Open();
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "insert into Приходной_документ values('" + textBox1.Text + "','" + comboBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" +
                    textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + dateTimePicker1.Text + "')";
                cmd.ExecuteNonQuery();
 
                this.Validate();
                con.Close();
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                textBox5.Text = "";
                textBox6.Text = "";
                textBox7.Text = "";
                textBox8.Text = "";
 
 
 
                textBox1.Text = "";
                MessageBox.Show("Процесс завершен!", "Добавление"); // Выводим сообщение о звершении.
            }
        }
    }
}
подскажите как зделать

ошибка в картинке
0
Миниатюры
Конфликт инструкции INSERT с ограничением FOREIGN KEY  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2018, 07:11
Ответы с готовыми решениями:

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

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

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

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Main_ToWorker"
Добрый день. Пытаюсь добавить запись в базу данных выдает эту ошибку...

Ошибка при INSERT: "Cannot add or update a child row: a foreign key constraint fails"
Здравствуйте. Задача- есть несколько дата грид вьюшек. в них отображаются данные разных таблиц...

4
Low12
0 / 0 / 0
Регистрация: 06.05.2017
Сообщений: 14
25.12.2018, 08:05  [ТС] 2
Подскажите как решит эту ошибку

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace Оптовый_склад
{
    public partial class Добавить_приход : Form
    {
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\4 Курс\Курсовой\База\qwe.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        public Добавить_приход()
        {
            InitializeComponent();
        }
 
       
 
        private void Добавить_приход_Load(object sender, EventArgs e)
        {
            this.поставщикиTableAdapter.Fill(this.qweDataSet.Поставщики);
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Вы действительно хотите добавить запись?", "Подтвердите действие", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                con.Open();
               
                SqlCommand cmd = con.CreateCommand();
                int код_товара;
                if (int.TryParse(textBox3.Text, out код_товара))
                    cmd.Parameters.AddWithValue("@код_товара", код_товара);
                else
                    cmd.Parameters.AddWithValue("@код_товара", null);
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "insert into Приходной_документ values('" + textBox1.Text + "','" + comboBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" +
                    textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + dateTimePicker1.Text + "')";
                cmd.ExecuteNonQuery();
 
                this.Validate();
                con.Close();
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                textBox5.Text = "";
                textBox6.Text = "";
                textBox7.Text = "";
                textBox8.Text = "";
 
 
 
                textBox1.Text = "";
                MessageBox.Show("Процесс завершен!", "Добавление"); // Выводим сообщение о звершении.
            }
        }
    }
}
ощибка в картинке
0
Миниатюры
Конфликт инструкции INSERT с ограничением FOREIGN KEY  
OttoFix
38 / 30 / 9
Регистрация: 11.12.2018
Сообщений: 132
25.12.2018, 08:46 3
Цитата Сообщение от Low12 Посмотреть сообщение
C#
1
else cmd.Parameters.AddWithValue("@код_товара", null);
код_товара случайно не внешний ключ? если внешний ключ null, что произойдет?

Думаю пока Вы не предоставите схему данных или сам проект с базой, Вам поможет только экстрасенс.
0
Usaga
Эксперт .NET
5682 / 3916 / 701
Регистрация: 21.01.2016
Сообщений: 15,441
Завершенные тесты: 2
25.12.2018, 08:50 4
Low12, текст сообщения об ошибке говорит, что вы пытаетесь внести в таблицу запись, которая нарушает ограничение целостности FK_Приходной_документ_Товары. В поле, на которое наложено данное ограничение, должен записываться валидный идентификатор записи из таблицы Товары. А записывается, видимо, что попало.

Запросы вставки принято писать с явным указанием всех затрагиваемых командой вставки полей:

SQL
1
INSERT INTO TABLE_NAME (tbl_id, chislo, chislotwo, name) VALUES (1′,159′,34,’name1′), (2′,14,61,’name2′), (3′,356′,8′,’name3’);
Так же, нужно использовать параметризованные запросы, для передачи в него (в запрос) параметров. Конкатенацию даже индусы не используют, ибо фу лютое.
2
meridbt
25.12.2018, 12:48     Конфликт инструкции INSERT с ограничением FOREIGN KEY
  #5

Не по теме:


Цитата Сообщение от Usaga Посмотреть сообщение
Конкатенацию даже индусы не используют, ибо фу лютое
в цитаты, однозначно :)

0
25.12.2018, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2018, 12:48
Привет! Вот еще темы с ответами:

foreign key (C#+SQL)
Здравствуйте. Ситуация такая. Два формы. Form1 и Form2. С Form1 данные заполняют таблицу Table1....

Добавить данные в таблицу с Foreign Key
Проблема в следующем, не могу понять, как добавлять данные в таблицу в которой есть Foreign key. В...

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


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

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

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