2016-07-14 1 views
0

Я получаю это исключение: неверное определение поля «NalogID» в определении индекса или отношения. Исключение генерируется, когда я добавляю таблицу в коде ниже каталогаCOMException при добавлении ForeignKey в таблицу с использованием ADOX для AccessDB

Я не могу понять, что параметр идет в 3-е место (это то, что Visual Studio показывает столбец Object = Type.Missing) на следующая строка кода:

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

Я последовал этому примеру: how to add foreign key to access table using adox

Вот полный пример кода:

// 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

ответ

0

Оказывается, я не получал первичные ключи, так что бросил нон индекс поля стоимость создания эксклюзивной Exception, то я их сделал так:

  // 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"); 

А теперь все работает отлично

Смежные вопросы