database - msadox28.tlb 在注册时不是有效的 .Net 程序集文件
问题描述
我正在使用 vb.net (2015) 和 MS Access 数据库开发应用程序。我可以在现有数据库中正常工作。我现在有需要以编程方式创建数据库以进行计费的情况。这是每个文件夹将包含用于公司/公司选择的数据库的情况。
在互联网 / StackOverflow 上搜索后,我了解了 ADOX。甚至得到了它的现成代码。我在我的编码中应用了它。
- 添加 Microsoft ADO 扩展 2.8 和 6.0 的引用
- 创建变量 Adx 作为新的 Adox.catalog
- 然后最后写了 Adx.create(olejet provider conn string with data source)
在这一步我得到一个错误
COM 类未注册
所以我尝试注册msadox.dll
并msadox28.tlb
使用regsvr32
,regasm
但当时我收到另一个错误:
msadox.dll 注册成功,但 msadox28.tlb 出现错误
无法加载 -file- 因为它不是有效的 .net 程序集文件
现在我被困在这一点上。
我的系统是 Windows 10 64 位。我试图以 cpu x86 和任何 cpu 为目标,但它不起作用。我在这里有很多问题和答案,但不明白。
编辑:
我尝试了以下连接字符串并且它有效,但它创建了旧的 2000-2003 mdb 文件。我想使用新的访问文件 .accdb
字符串是:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\VBProj\Testing\test.mdb;Jet OLEDB:Engine Type=5
编辑:2021 年 9 月 20 日 - 星期一
首先非常感谢@Jimi,您对使用 ACE.16 和清洁溶液的建议奏效了。非常感谢
我使用以下步骤在 VB.NET 中使用 ADOX 创建 MS Access 数据库:
项目菜单 > 添加参考 > COM 部分 > 选择 Microsoft ADO 分机。6.0 用于 DLL 和安全性
在程序入口点(表单加载/子主)写入连接字符串 ->
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb
,将其分配给变量connString
像这样全局声明 adox 目录
Public gAdxCat As New ADOX.Catalog
使用它的方法
gAdxCat.create(connString)
就是这样 - 完成
再次感谢@jimi
解决方案
这是我的问题的答案(由@jimi 帮助)
以下是在 VB.NET 中使用 ADOX 创建 msaccess 数据库的步骤,并且在原始问题中提到了错误。
1-项目菜单 > 添加参考 > COM 部分 > 选择 Microsoft ADO 分机。6.0 用于 DLL 和安全性(删除 2.8 的参考)
2-在程序入口点写入连接字符串(表单加载/子主)->“Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb”将其分配给变量 connString
3 全局声明 adox 目录,如 Public gAdxCat As New ADOX.Catalog
4-使用它的方法 gAdxCat.create(connString)
5-这一切都完成了
再次感谢@jimi
推荐阅读
- reactjs - 如何为文本字段设置初始值?
- python - groupby/eq 计算特定列的平均值
- ios - 错误:exportArchive:代码签名“MyFramework.framework”在 fastlane 构建中失败
- elasticsearch - 带有 ElasticSearch 的 Grafana - 特定时间段内最大值的总和
- python - Python 使用 openpyxl 和 pandas 将抓取的 Web 数据导出到 Excel
- node.js - Typeorm 关系查询生成器
- python - 如何将列表中的数据写入 CSV 文件?
- string - 带有几行包含“#”和特定文本的正则表达式
- c - 将 double 转换为 printf 的类似 %g 的字符串,长度最短且不损失任何精度
- sql - 仍然混淆选择列、分组依据和连接的规则