tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
414
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von rabado
    rabado rabado ist offline Mitglied Bronze
    Registriert seit
    Sep 2005
    Ort
    Dortmund, Germany
    Beiträge
    28
    Hallo Zusammen,

    nachfolgend ein Ausschnitt aus einer XML-Datei, die mehrere Tabellen verwaltet.
    Die Tabelle tabNummern soll Nummern verwalten, welche über eine externe Datei in die Tabelle geschrieben werden.
    Um zu vermeiden, dass eien nummer mehrfach vorkommt, wurde auf das Feld "NR" ein Primärschlüssel gesetzt.
    Leider habe ich das Problem, dass eien Nummer unter VS2008(C#) trotzdem mehrfach angelegt werden kann, was an sich wegen des eindeutigen Schlüssels nicht sein kann.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
              <xs:element name="tabNummern">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Nr" type="xs:int" />
                    <xs:element name="bestaetigt" type="xs:boolean" default="false" minOccurs="0" />
                    <xs:element name="Echt" type="xs:boolean" default="false" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

    Code :
    1
    2
    3
    4
    5
    
          <xs:unique name="Constraint1" msdata:PrimaryKey="true">
            <xs:selector xpath=".//tabNummern" />
            <xs:field xpath="Nr" />
          </xs:unique>
        </xs:element>

    Die Nummern werden wie folgt eingefügt. try catch lasse ich mal außen vor:

    Code :
    1
    2
    3
    4
    5
    
    DataRow r = tab.NewRow();
    r["Nr"] = 1;
    r["bestaetigt"] = false;
    r["Echt"] = true;
    tab.Rows.Add(r);

    Warum kann ich die Nummer einfügen, obwohl ich einen eindeutigen Schlüssel habe?

    Gruß -rabado-
     

  2. #2
    Mel_One Mel_One ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Ort
    Zürich (Zürich)
    Beiträge
    167
    Hm, kann ich davon ausgehen, dass du die Zeile 2 mal einfügst? Oder ne 2. Zeile mit der 1?
     
    "Wenn Sie mich suchen, ich halte mich in der Nähe des Wahnsinns auf, genauer gesagt auf der schmalen Linie zwischen Wahnsinn und Panik, gleich um die Ecke von Todesangst, nicht weit weg von Irrwitz und Idiotie!"
    -- Bernd das Brot

  3. #3
    Avatar von rabado
    rabado rabado ist offline Mitglied Bronze
    Registriert seit
    Sep 2005
    Ort
    Dortmund, Germany
    Beiträge
    28
    Der dritte Code-Abschnitt zeigt die Technik des Einfügens.
    Die Zeile mit Nr = 1 ist schon in der Tabelle, und dann kann Sie ein zweites Mal hinzugefügt werden, warum?
     

  4. #4
    Avatar von Vereth
    Vereth Vereth ist offline Mitglied Brokat
    Registriert seit
    Nov 2009
    Ort
    Dortmund
    Beiträge
    372
    Wahrscheinlich verwendest du nur eine 'nackte' DataTable. Um dein Problem zu lösen, sollte die DataTable Bestandteil eines DataSets sein, in welchem du auch Constraints und anderes definieren kannst. Dieses DataSet kann dann relativ einfach in eine XML-Datei gespeichert bzw. aus dieser erzeugt werden; die Constraints und die anderen Bestandteile deines DataSets bleiben dann erhalten.
     
    Vielen Dank für die Nutzung des Bewerten- und Danke-Buttons

    Wenn man sieht, dass man einen anderen glücklich gemacht hat, ist die Welt um zwei glückliche Menschen reicher.

Ähnliche Themen

  1. JSF und dataTable
    Von naeko im Forum Java
    Antworten: 0
    Letzter Beitrag: 13.04.07, 15:21
  2. c# DataTable -> SQL
    Von flyAway im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 07.10.05, 08:41
  3. DataTable zu anderer DataTable hinzufügen
    Von broetchen im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 12.09.05, 15:00
  4. DataTable
    Von Guybrush2003 im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 27.01.05, 16:51
  5. DataTable
    Von LordDeath im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 21.10.04, 12:43

Stichworte