ADOX 不能在 VS2010 中使用?



我想使用adox在VS2010中创建数据库,但是在使用'adox.catalogclass'时,我会得到异常错误:Interop类型的" Adox.CatalogClass"无法嵌入。改用适用的接口。实际上,被标记为错误的特定行是: ADOX.CatalogClass cat = new ADOX.CatalogClass();

Adox对VS2010不起作用吗?我该如何解决?谢谢

您在参考上设置为true的"嵌入Interop类型"选项。非常好的功能,但它不直接使用XXXClass包装器支持。不直觉,但是您可以使用 new 运算符创建COM接口的实例。更改您的代码以摆脱错误:

   ADOX.Catalog cat = new ADOX.Catalog();

我在vs2010中使用adox.catalog,而不是目录clos。这是我在哪里使用的示例:

private void CreateAndExportLegacyFile(string exportFilePath)
{
    var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
    connectionString += "Data Source=" + exportFilePath + ";Jet OLEDB:Engine Type=5";
    var catalog = new Catalog();
    catalog.Create(connectionString);
    var table = new Table { Name = "Main" };
    #region Column mapping
    table.Columns.Append("ID", DataTypeEnum.adVarWChar, 50);
    // Snipped rest of them
    #endregion
    foreach (Column column in table.Columns)
    {
        if (column.Name != "ID")
        {
            column.Attributes = ColumnAttributesEnum.adColNullable;
        }
    }
    catalog.Tables.Append(table);
    Marshal.FinalReleaseComObject(table);
    Marshal.FinalReleaseComObject(catalog.Tables);
    Marshal.FinalReleaseComObject(catalog.ActiveConnection);
    Marshal.FinalReleaseComObject(catalog);
}

最新更新