【发布时间】:2021-12-18 18:33:57
【问题描述】:
我最近尝试在一个小的 Revit 插件中使用带有 C# 代码的 access 数据库,但是当我使用 OleDbConnection.Open() 时它崩溃了
这是我的 sn-ps:
CPFMainModelView mainModelView;
static readonly string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ThomasLECUPPRE(Letit\source\LIB_MainDB.accdb";
public UserDBManager(CPFMainModelView cmmw)
{
mainModelView = cmmw;
try
{
RetrieveprojectList();
}
catch (Exception ex)
{
mainModelView.Texte = $"{ex.Message}\n\n{ex.StackTrace}\n\n{ex.InnerException}\n\n{ex.Data}";
}
}
public void RetrieveprojectList()
{
using (OleDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
OleDbCommand command = new OleDbCommand("SELECT Ref FROM FolderCategory", con);
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
mainModelView.Texte += $"\n{reader["Ref"]}";
}
}
}
Here is 我的微型数据库在访问中的视图
我错过了什么?
我已经看到了这些帖子: C# - OleDbConnection.Open() causing a crash Simple C# connection to .accdb file
在使用“Provider=Microsoft.ACE.OLEDB.12.0”并仅为 X86 构建解决方案之前,我使用“Provider=Microsoft.Jet.OLEDB.4.0”并为除 this thread 之外的任何 CPU 构建解决方案(在法语对不起)用另一种方式告诉它。
感谢您的帮助。
【问题讨论】:
-
您在哪里遇到了哪些异常?
-
应用程序只是崩溃,没有例外,什么都没有,这就是问题所在:/ 使用“Provider=Microsoft.Jet.OLEDB.4.0”并为任何 CPU 构建解决方案我只是得到“Provider“blablabla”是未在本地计算机上注册”(引自“Lefournisseur 'Provider=Microsoft.Jet.OLEDB.4.0' n'est pas inscrit sur l'ordinateur local”。)
-
@KlausGütter 我刚刚用“Provider= ....12.0”尝试过,我得到了与 Provider=....4.0 相同的异常为什么我的插件没有显示这个异常并显示它对于 4.0 提供商?!
-
查看 Windows 事件日志。应用程序崩溃通常会在那里留下一些有用的信息