Aufruf von Gespeicherten Prozeduren - Fehlermeldung

25/09/2007 - 15:32 von Adrian Stern | Report spam
Hallo

Ich habe eine prozedur die, wenn ich sie alleine teste einwandfrei
funktioniert.
Der aufruf dieser, schaut so aus:

protected void Wizard1_FinishButtonClick1(object sender,
WizardNavigationEventArgs e)
{
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.UpdatedRowSource = UpdateRowSource.None;

sqlCmd.CommandText = "pCst_Tt_CreateUmfrage";

//sqlCmd.Parameters.Add("@ReturnText",SqlDbType.VarChar,
8000).Direction = ParameterDirection.ReturnValue;

sqlCmd.Parameters.AddWithValue("@ReturnText", "0");
sqlCmd.Parameters.AddWithValue("@Titel", TBTitel.Text.Trim());
sqlCmd.Parameters.AddWithValue("@Beschreibung",
tbBeschreibung.Text);
sqlCmd.Parameters.AddWithValue("@IDUmfrageTyp", GetIDUmfrageTyp());
sqlCmd.Parameters.AddWithValue("@IDPerson",
tbIDPerson.Text.Trim());
sqlCmd.Parameters.AddWithValue("@DatumVon",
tbDatumVon.Text.Trim());
sqlCmd.Parameters.AddWithValue("@DatumBis",
tbDatumBis.Text.Trim());
sqlCmd.Parameters.AddWithValue("@FachMuss", GetNeednes("fach"));
sqlCmd.Parameters.AddWithValue("@OrtMuss", GetNeednes("ort"));
sqlCmd.Parameters.AddWithValue("@FachSichtbar",
GetVisibility("fach"));
sqlCmd.Parameters.AddWithValue("@OrtSichtbar",
GetVisibility("ort"));

//sqlCmd.Parameters.AddWithValue("@ReturnText", "0");
//sqlCmd.Parameters.AddWithValue("@Titel", "gurrTitel");
//sqlCmd.Parameters.AddWithValue("@Beschreibung", "Beschr");
//sqlCmd.Parameters.AddWithValue("@IDUmfrageTyp", "2");
//sqlCmd.Parameters.AddWithValue("@IDPerson", "148482");
//sqlCmd.Parameters.AddWithValue("@DatumVon", "24.09.2007");
//sqlCmd.Parameters.AddWithValue("@DatumBis", "24.09.2007");
//sqlCmd.Parameters.AddWithValue("@FachMuss", "1");
//sqlCmd.Parameters.AddWithValue("@OrtMuss", "0");
//sqlCmd.Parameters.AddWithValue("@FachSichtbar", "1");
//sqlCmd.Parameters.AddWithValue("@OrtSichtbar", "1");

db.InsertUpdate(null, sqlCmd);

}


Auf den Auskommentierten bereich komme ich noch.
Wenn ich es auf diese weise teste, bekomme ich eine Fehlermeldung welche
ich nicht wirklich verstehe:

INSERT statement conflicted with COLUMN FOREIGN
KEY constraint 'FK_tblCst_Tt_PersonenUmfrage_tblPerson'.
The conflict occurred in database 'EventoFHTest',
table 'tblPerson', column 'IDPerson'.
The statement has been terminated.


Nun zum auskommentierten Bereich. Es sind die selben Befehle wie der
obige. Wenn ich also den zurzeit aktiven Block mit dem auskommentieren
auswechsel, funktioniert das ganze anstandslos.

Was ich nicht verstehe, denn alle Methoden die aufgerufen werden geben
einen String zurück und desshalb sollte der aufbau schlussendlich ja
nahezu identisch sein.

Ich hoffe jemand von euch findet den Fehler.

mfg
Adrian Stern
 

Lesen sie die antworten

#1 Samaschke, Karsten
25/09/2007 - 18:34 | Warnen spam
Guten Morgen,

INSERT statement conflicted with COLUMN FOREIGN
KEY constraint 'FK_tblCst_Tt_PersonenUmfrage_tblPerson'.
The conflict occurred in database 'EventoFHTest',
table 'tblPerson', column 'IDPerson'.
The statement has been terminated.



Naja, hier steht bereits alles drin: Es gibt eine
Fremdschlüsselbeziehung mit einer anderen Tabelle, und diese Beziehung
betrifft die Spalte IDPerson. Offensichtlich kann der Datensatz nicht
eingefügt werden, wenn der ID-Wert nicht in der anderen Tabelle existiert.

Dein zweites Statement funktioniert, weil der verwendete ID-Wert in der
anderen Tabelle existiert.

Mit freundlichen Gruessen / Best regards

Karsten Samaschke
IT-Entwicklung, IT-Beratung, IT-Training
Web: http://www.ksamaschke.de
Blog: http://www.karsan.de
Lesen: http://www.xmldotnet.de

Ähnliche fragen