2016-07-14 22 views
0

Ich bekomme diese Ausnahme: Ungültige Felddefinition "NalogID" in der Definition von Index oder Beziehung. Exception ausgelöst wird, wenn ich die Tabelle in dem folgenden Code in den Katalog anhängenCOMException beim Hinzufügen ForeignKey zur Tabelle mit ADOX für AccessDB

ich nicht herausfinden können Parameter, welche in der 3. Platz geht (das ist, was Visual Studio zeigt Spalte Objekt = Type.Missing) auf die folgende Codezeile:

tableNalogRelacija.Keys.Append("ForeignKey", ADOX.KeyTypeEnum.adKeyForeign, "NalogID", "Nalog", "NalogID"); 

ich dieses Beispiel gefolgt: how to add foreign key to access table using adox

Hier ist voller Codebeispiel:

// generira tabelu Relacije 
      ADOX.Table tableNalogRelacija = new ADOX.Table(); 
      ADOX.Key tableKey4 = new Key(); 
      ADOX.Column idColumn4 = new Column(); 
      // Define column with AutoIncrement features 
      idColumn4.Name = "ID"; 
      idColumn4.Type = ADOX.DataTypeEnum.adInteger; 
      // Set ID as primary key 
      tableKey4.Name = "Primary Key"; 
      tableKey4.Columns.Append("ID"); 
      tableKey4.Type = KeyTypeEnum.adKeyPrimary; 
      //Create the table and it's fields. 
      tableNalogRelacija.Name = "NalogRelacija"; 
      tableNalogRelacija.Columns.Append(idColumn4); 
      tableNalogRelacija.Columns.Append("MjestoPolaska", ADOX.DataTypeEnum.adVarWChar, 50); 
      tableNalogRelacija.Columns.Append("MjestoDolaska", ADOX.DataTypeEnum.adVarWChar, 30); 
      tableNalogRelacija.Columns.Append("Udaljenost", ADOX.DataTypeEnum.adInteger); 
      // Dodavanjeg stranog ključa NalogID 
      tableNalogRelacija.Columns.Append("NalogID", ADOX.DataTypeEnum.adInteger); 
      tableNalogRelacija.Keys.Append("ForeignKey", ADOX.KeyTypeEnum.adKeyForeign, "NalogID", "Nalog", "NalogID"); 

~ ChenChi

Antwort

0

Stellt sich heraus, ich war nicht Primärschlüssel bekommen, so dass es nicht uniqe Indexfeld Exception warf dann ich sie so gemacht:

  // CREATE TABLE RELACIJA 
      ADOX.Table tableNalogRelacija = new ADOX.Table(); 
      tableNalogRelacija.Name = "NalogRelacija"; 

      // APPEND PRIMARY KEY 
      tableNalogRelacija.Columns.Append("IDRelacija", ADOX.DataTypeEnum.adInteger); 
      tableNalogRelacija.Keys.Append("PrimaryKey", KeyTypeEnum.adKeyPrimary, "IDRelacija"); 

      // APPEND COLUMNS 
      tableNalogRelacija.Columns.Append("MjestoPolaska", ADOX.DataTypeEnum.adVarWChar, 50); 
      tableNalogRelacija.Columns.Append("MjestoDolaska", ADOX.DataTypeEnum.adVarWChar, 30); 
      tableNalogRelacija.Columns.Append("Udaljenost", ADOX.DataTypeEnum.adInteger); 
      // ADD FOREIGN KEY NalogID 
      tableNalogRelacija.Columns.Append("NalogID", ADOX.DataTypeEnum.adInteger); 
      tableNalogRelacija.Keys.Append("ForeignKey_NalogRelacija", ADOX.KeyTypeEnum.adKeyForeign, "NalogID", "Nalog", "IDNalog"); 

Und jetzt funktioniert alles einwandfrei