2016-07-14 3 views
0

이 예외가 발생합니다 : 인덱스 또는 관계의 정의에서 'NalogID'가 잘못되었습니다. 내가 3 곳에서 어떤 일이 일어나는지 매개 변수를 알아낼 수 없습니다 카탈로그COMException AccessKey에 대한 ADOX를 사용하여 테이블에 ForeignKey를 추가 할 때

에 아래의 코드 테이블을 추가 할 때 예외가 해고에 (이 = 비주얼 스튜디오는 개체 열을 보여줍니다 무엇 Type.missing입니다) 다음 코드 줄 :

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

내가이 예를 다음 :

// 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"); 
,536 : 여기 how to add foreign key to access table using adox

전체 코드 샘플입니다

~ ChenChi

답변

0

는 본인은 본처럼 그들을 만든 후 비 누구와도 바꿀 수없는 다이애나 인덱스 필드 예외를 던졌다 있도록 기본 키를 받고되지 않았습니다 밝혀 :

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

이제 모든 것이 잘 작동