Fehler - Hinzufügen oder Aktualisieren einer untergeordneten Zeile nicht möglich: Eine Fremdschlüsseleinschränkung schlägt fehl - c #, mysql

Ich habe zwei Tische,

purchase(purchId,date,empId,supId)
item(itemID,name,qty,unit_price)

Und,

purchase_item(purchId,itemID,qty,unit_price)

Die Kauftabelle und die Artikeltabelle werden gut aktualisiert, aber wenn ich versuche, die purchase_item,

Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (bookshop.purchase_item, CONSTRAINT purchase_item_ibfk_1 UNBEKANNTER SCHLÜSSEL (purchId) VERWEISE purchase (purchId) ON DELETE CASCADE AUF UPDATE CASCADE)

Aktualisierungsanweisung verwendet,

Insert into purchase_item values("" + invoice + "","" + ItemId + "","" + qty + "","" + unitPrice + "")"; (working on a C# project)

Code, w

int ItemId = Convert.ToInt32(textBox3.Text);
string ItemName = textBox4.Text;
string Category = textBox5.Text;
int qty = Convert.ToInt32(textBox7.Text);
double UnitPrice = Convert.ToDouble(textBox6.Text);
string supname = textBox8.Text;
int supId = 12345;
int invoice = Convert.ToInt32(textBox9.Text);
string query1 = "Insert into item values("" + ItemId + "","" + ItemName + "","" + Category + "","" + qty + "","" + UnitPrice + "")";
int rows = db.SaveUpdateDelete(query1);

DateTime d = DateTime.Now;
int day = d.Day;
int month = d.Month;
int year = d.Year;

string dt = year + "/" + month + "/" + day;


string query = "Insert into purchase values("+invoice+",""+dt+"","+username+","+supId+")";
string query2 = "Insert into purchase_item values("" + invoice + "","" + ItemId + "","" + qty + "","" + UnitPrice + "")";

int rows1 = db.SaveUpdateDelete(query);
int rows2 = db.SaveUpdateDelete(query2);
if  (rows==1 && rows1==1 && rows2==1)
{


MessageBox.Show("Data Entered Successfully.");
}
else
{
MessageBox.Show("Failed to Insert Data.");
}

Antworten:

0 für die Antwort № 1

Sie bekommen diesen Fehler, weil Sie es versuchenHinzufügen einer Zeile zu purchase_item, die keinen gültigen Wert für das Feld itemID oder purchidd aufweist, basierend auf den Werten, die derzeit in Einkaufs- und Elementtabellen gespeichert sind. Wenn Sie etwas mehr Code veröffentlichen, kann ich Ihnen helfen, die spezifische Ursache zu diagnostizieren.


0 für die Antwort № 2

Versuche Schritte zu folgen, hoffentlich bekommst du das Problem:

  1. Überprüfen Sie zunächst, ob Ihre Anfrage in folgenden Zeilen erfolgreich ausgeführt wurde

string query1 = "Insert into item values("" + ItemId + "","" + ItemName + "","" + Category + "","" + qty + "","" + UnitPrice + "")"; int rows = db.SaveUpdateDelete(query1);

was du dann in "Reihen" bekommst

Ändern Sie den Code zum Einfügen des Kaufs zuerst, erstellen Sie dann die Artikelliste und fügen Sie purchase_items ein.

wenn die Kauf-ID, die Sie in Purchase_items verwenden, dann.

Können Sie bitte noch einmal bestätigen, auf welcher Codezeile Sie dieses Problem haben?

AKTUALISIEREN: tun Sie noch etwas, bitte übergeben Sie zuerst statische Werte, um zu überprüfen, ob SP gut funktioniert.


Verwandte Fragen