Unique Constraints zur Laufzeit deaktivieren, aber wie??
-
Hallo hat jemand eine Ahnung wie ich die Einstellung für den Primärschlüssel eine Datenbanktabnelle zur Laufzeit kurzzeitig deaktivieren und später wieder aktivieren kann?
Ich habe 4 tabellen auf der Form, die alle nacheinander über einen Fremdschlüssel zueinander in Beziehung stehen. Die oberste Tabelle hat zwei Spalten, Firma und Kundennummer. Die Kundennummer ist bei mir in de Form an eine ComboBox gebunden, und sobald ich aus dieser eine Kundennummer auswähle und über die BindingSource.Filter bekomme ich eine Fehlermeldung :==> Column 'KundNr' is constrained to be unique. Value '3333' is already present.
private void btn_Suchen_Kundennummer_Click(object sender, EventArgs e) { // freigabe_SQL.Kundentabelle.Constraints = false; tmpKundennummer = cmbx_KundNr.Text; Suchuebergabe_Filterkriterium(kundentabelleBindingSource, "KundNr", tmpKundennummer); Suchuebergabe_Filterkriterium(zeichnungstabelleBindingSource, "KdNr", cmbx_KundNr.Text); Suchuebergabe_Filterkriterium(freigabetabelleBindingSource, "ZeichnungsNr", cmbx_Zeichnungsnummer.Text); Suchuebergabe_Filterkriterium(notiztabelleBindingSource, "[PA-Nummer]", cmbx_PANr.Text); } // ************** generierte Methoden für Projekt *************************************************** private void Suchuebergabe_Filterkriterium(BindingSource bs, string Bezeichner, string Suchargument) { bs.Filter = Bezeichner + " LIKE '" + Suchargument + "'"; }
Wie behandle ich den Unique Fehler ?? Muß ich doch irgendwie kurzzeitig deaktivieren können, steht auch so bei Microsoft in der Doku, nur sagen die nicht genau wies geht. Hat jemand von euch so eine Konstellation schon hinter sich gebracht und ähnliche Probleme gehabt? Habe auch schon im Netz gespäht ob da jamand so eine kundenverwaltung mit 3 oder vier Tabellen oder ncohmehr realisiert hat, um davon was abzukupfern (LErneffekt), habe leider nichts gefunden.
Wer kann mir helfen???
-
freigabe_SQL.Kundentabelle.KundNrColumn.Unique = false;
Dann bekomme ich eine folgende Meldung:
Cannot remove unique constraint since it's the primary key of table Kundentabelle.
Wie mach ich das nun?
private void btn_Suchen_Kundennummer_Click(object sender, EventArgs e) { // freigabe_SQL.EnforceConstraints = false; // freigabe_SQL.Kundentabelle.Constraints = false; freigabe_SQL.Kundentabelle.KundNrColumn.Unique = false; tmpKundennummer = cmbx_KundNr.Text; kundentabelleBindingSource.RemoveFilter(); Suchuebergabe_Filterkriterium(kundentabelleBindingSource, "KundNr", tmpKundennummer); Suchuebergabe_Filterkriterium(zeichnungstabelleBindingSource, "KdNr", cmbx_KundNr.Text); Suchuebergabe_Filterkriterium(freigabetabelleBindingSource, "ZeichnungsNr", cmbx_Zeichnungsnummer.Text); Suchuebergabe_Filterkriterium(notiztabelleBindingSource, "[PA-Nummer]", cmbx_PANr.Text); freigabe_SQL.Kundentabelle.KundNrColumn.Unique = true; }
-
Garnicht, ein PK muss immer unique sein, deswegen is er ja ein PK
Was willst du denn überhaupt erreichen? Also was soll überhaupt passieren wenn jmd. "eine Kundennummer auswählt"? Ich denke doch dass dann ein neuer Datensatz geladen werden sollte, anstatt dass du die Nummer eines bestehenden Kunden änderst, und damit die ganze DB übern Haufen schiebst (was SQL Server dich netterweise nicht lässt).
-
Hallo hustbaer,
ich möchte nach einem Datensatz suchen, die ComboBox habe ich mit der bindingsource verkuppelt, damit mir die ComboBox alle Kundennummern anzeigt. Wähle ich mit der ComboBox die betreffende Kundennummer aus, krachts sofort und es erscheint die MEldung:
Column 'KundNr' is constrained to be unique. Value '4444' is already present.
So komm ich nicht weiter. Ich habe die Daten in einer SQL-Datenbankdatei. ICh würde das Projekt gerne mal jemand zeigen de sich damit auskennt. Ich denke, es ist wahrscheinlich auch irgendwie ein Anfängerfehler. Ich habe schon in Büchern nachgesehen, ich finde keine Lösung.
Wer kann mir das weiterhelfen, würde das Projekt auch mal zusammenzipen und verschippern.Kann man hier eigentlich keine Screenshoots einfügen?
-
Vielleicht hilft das:
http://davidhayden.com/blog/dave/archive/2006/07/17/ConstraintExceptionWasUnhandled.aspx
-
Das Problem bei dem war ja das autoinkrementieren, was bei mir ja nicht so ist. Bin immer noch nicht weiter, blödes Prob.