2012-03-26 78 views
1

我有一个.net应用程序不能在同事计算机上工作(他远程工作,所以很难诊断问题)。从Access数据库加载数据时出现该错误。这里是我用来加载数据的代码:访问数据加载失败.net

var constring = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=X:\db.mdb"; 
OleDbConnection c = new OleDbConnection(constring); 
c.Open(); 
var dataSet = new DataSet(); 
var adapter = new OleDbDataAdapter("SELECT * FROM Table", c); 
adapter.Fill(dataSet); 
c.Close(); 

什么能在这个阶段导致错误?如果未安装Access或错误的版本,此代码是否会中断?还有什么其他的东西可能会导致这段代码崩溃

编辑:不是C:\,而是X:\,这是一个共享网络驱动器。

+5

是什么错误?使用断点将其缩小到让您头疼的特定行。 – 2012-03-26 13:21:51

+5

提供实际的错误将帮助 – Quintium 2012-03-26 13:22:01

+0

@Daniel,他的同事是遥远的。尽管如此可能会有帮助 – Simon 2012-03-26 13:24:04

回答

1

乍一看; - 有机器 没有供应商 - 没有源文件C:\ db.mdb - 源文件(数据库)不正确(没有表名称表)

+0

除非它是一个非常旧的XP系统,该提供者应该存在..可能DB不存在... – gbianchi 2012-03-26 13:26:39

+0

此外,用户可能没有对c:\ db.mdb文件的权限 – Cronan 2012-03-26 13:27:08

+0

Db不存在?这是什么意思?你能详细解释一下吗? – sooprise 2012-03-26 13:42:35

1

当然,既然你有没有说你有什么错误,这只是一个猜测:

我见过很多情况下,Jet的VPN连接性能非常缓慢。这通常导致尝试读取数据超时。 数据库是真的位于C:\db.mdb?如果它位于网络驱动器上,t适配器在填充数据集时可能会超时,尤其是在表中有相当数量的数据时。

如果这是您的问题的原因,那么您可以重写应用程序以仅检索需要的记录,并在需要时进行检索。

在我的公司,我们有一台电脑坐在我们的办公室,供远程用户使用我们的Access应用程序。他们使用远程桌面登录到该计算机;由于机器位于我们的LAN上,因此性能与本地用户相同。

如果您可以为您的问题添加更多细节,我们可能会提供更多有用的建议。