San*_*Lev 5 c# database ms-access adox
我一直在尝试通过C#创建一个Access数据库。我已经尝试使用这篇文章中的代码,并且我必须承认这篇文章非常有帮助。现在,这是我的代码中应该创建 Access 数据库的部分:
public bool CreateNewAccessDatabase(string fileName)
{
//var cat = new ADOX.Catalog();
//using var instead of CatalogClass hasn't worked either.
ADOX.CatalogClass cat = new ADOX.CatalogClass();
string tmpStr;
string filename = fileName;
tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";
tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";
cat.Create(tmpStr);
Console.Out.WriteLine("OK");
Table nTable = new Table();
nTable.Name = "NombreDeEmpresa";
nTable.Columns.Append("CAMPO1", ADOX.DataTypeEnum.adVarWChar, 25);
nTable.Columns.Append("CAMPO2", ADOX.DataTypeEnum.adVarWChar, 45);
nTable.Columns.Append("CAMPO3", ADOX.DataTypeEnum.adVarWChar, 45);
nTable.Columns.Append("CAMPO4", ADOX.DataTypeEnum.adVarWChar, 45);
nTable.Columns.Append("CAMPO5", ADOX.DataTypeEnum.adVarWChar, 25);
nTable.Columns.Append("CAMPO6", ADOX.DataTypeEnum.adVarWChar, 20);
nTable.Columns.Append("CAMPO7", ADOX.DataTypeEnum.adVarWChar, 15);
cat.Tables.Append(nTable);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(nTable);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat.Tables);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat.ActiveConnection);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat);
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我调试代码,当我到达以下行时,我总是会得到相同的异常:
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + "; Jet OLEDB:Engine Type=5;");
Run Code Online (Sandbox Code Playgroud)
我可以从异常中检索到的所有信息都可以在这里看到(抱歉我的 Visual Studio 是西班牙语,我认为无论如何信息都很清楚)。哦,我的参考资料中确实有 ADOX 和 adodb。有谁知道我该如何解决这个问题?
我使用的是 VS10,在 Windows 7 x64 上运行。
较旧的 Microsoft“Jet”驱动程序仅适用于 32 位应用程序。如果您想使用 Jet,则需要进入 Visual Studio 项目属性的“构建”选项卡,并将“目标平台”设置为“x86”。这将强制您的应用程序以 32 位运行。
| 归档时间: |
|
| 查看次数: |
4148 次 |
| 最近记录: |