vijay_bale Ответов: 1

Приходит сообщение об ошибке ссылки при сохранении записей в пустой базе данных SQL database in C#


I divided total sales transaction into two parts. under first part, date, customer name, bill number, gross amount, discount, net amount will come. I am saving all these in salesH database file. Under second part, item name, quantity, price, item wise total will come. I am saving all these in sales database file. I put reference of these two file one common field billno. In salesH, billno is having index key and identity. In sales billno is having Foreign key relation with salesH.billno When I am going to save first transaction one error is coming saying that "The INSERT constraint "FK_sales_salesH. The conflict occured in database "BillingDB".table "dbo.salesH".column "billno". The statement has been terminated.So I ma unable to save the record.


Что я уже пробовал:

Я искал это, но не нашел.

Tomas Takac

Возможно, вы захотите прочитать о ссылочной целостности и внешних ключах.

vijay_bale

Только для первой пустой базы данных он приходит. Если у меня есть данные и удалить некоторые данные и повторно ввести нет проблем. если я удаляю все данные, повторно войти и попытаться сэкономить это время только эта проблема comimg. Как это решить. Для удаления записей я использую CASCADE DELETE, поэтому в обоих файлах связанные данные будут удалены автоматически, но возможно при сохранении в первый раз.

1 Ответов

Рейтинг:
0

OriginalGriff

Вы не можете сохранить запись, потому что она содержит значение внешнего ключа в другой таблице, а в другой таблице нет соответствующей записи.
Это часто случается, когда вы делаете вставки в неправильном порядке-предположим, у вас есть новый клиент, и вы хотите записать продажу.
У вас есть два стола:
Клиенты

ID           int, IDENTITY
CustName     NVARCHAR(256)

И Продажи
ID           int, IDENTITY
Item         NVARCHAR(256)
Price        decimal
CustID       int, Foreign key to Customers.ID
Вы не можете сначала вставить строку в таблицу продаж, потому что у вас нет клиента для ссылки на нее - вы можете создать новую строку клиента, чтобы получить значение идентификатора, которое вам нужно вставить в строки таблицы продаж.

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


vijay_bale

Я разделил общую сделку продажи на две части. под первой частью будет указана дата, имя клиента, номер счета, валовая сумма, скидка, чистая сумма. Я сохраняю все это в файле базы данных salesH. Во второй части будет указано название товара,количество, цена, общая сумма товара. Я сохраняю все это в файле базы данных продаж. Я поставил ссылку на эти два файла в одно общее поле billno. В салеше биллно имеет индексный ключ и личность. В sales billno имеет отношение внешнего ключа с salesH.billno