0

我得到这个例外:索引或关系定义中的字段定义“NalogID”无效。当我将下面代码中的表附加到目录时引发异常

我无法弄清楚以下代码行中第三个位置的参数(这是 Visual Studio 显示的Object column = Type.missing):

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

我按照这个例子:如何使用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");

~ 陈驰

4

1 回答 1

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

现在一切正常

于 2016-07-15T06:46:15.783 回答