主题:用ADO连接带有密码的access数据库时遇到的问题
绿玉斗
[专家分:150] 发布于 2006-06-21 16:50:00
我用的是ADOTable控件,在其属性connection string中设置了连接字符串:
(数据源名称为shjuyuan,数据库名称为data,密码为11)
Provider=MSDASQL.1;Password=11;Persist Security Info=True;User ID=11;Data Source=shujuyuan;Initial Catalog=E:\data
之后,把Active属性置为true,datagrid 中就可以显示出数据。(未运行状态下)
但是,当我把 adotable1.open; 这句代码添加到按钮中,然后运行,当按下按钮时,就会有提示错误:
‘invalid variant type conversion’
或者我手工编辑连接字符串,并赋值:
adotable1.ConnectionString:= 'Provider=msdasql;DataSource=shujuyuan;Initial Catalog=E:\data;User Id=11;Password=11';
再运行后,仍然是相同的提示错误。
请教热心的朋友,
[em18]
回复列表 (共11个回复)
沙发
hanwb2002 [专家分:1340] 发布于 2006-06-21 19:05:00
应该是这样,这样决对行,不行我就自杀算了。把连接字符串改称这样
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\data;Persist Security Info=False;Jet OLEDB:Database Password=11
板凳
绿玉斗 [专家分:150] 发布于 2006-06-23 14:21:00
我试过了,连接不上,
提供程序如果为:Microsoft.Jet.OLEDB.4.0,用于连接无密码的access数据库是可以的,如果要连接加密的话,提供程序必须为:MSDASQL,并且需要建数据源。
后来我把adotable换成adodataset,连接字符串内容不变,问题就解决了,挺奇怪的。
仍然感谢你。不过千万不要做傻事,呵呵。
3 楼
xiulin [专家分:200] 发布于 2006-06-23 14:29:00
我原来也遇到这个问题,有密码要当做无密码来解决,用adoconnection很容易解决的
4 楼
hanwb2002 [专家分:1340] 发布于 2006-06-23 15:25:00
瞎说,你知道Microsoft.Jet.OLEDB.4.0为什么连接不上吗?因为你没有在"所有"最后一页中的 jet oledb:database password编辑值,你把access密码写道那项里面,不可能连接不上,这个我曾经试过很多次,我无论什么数据库我都连接过,有的assess文件连接还要系统文件,我都用过,怎么会出错连接不上,我真不信!
5 楼
hanwb2002 [专家分:1340] 发布于 2006-06-23 15:28:00
[quote]我原来也遇到这个问题,有密码要当做无密码来解决,用adoconnection很容易解决的[/quote]
这于这个方法我没有试过,但是我想那时不肯能能连接上的,否则还需要assess密码干吗?呵呵
6 楼
nepenthe [专家分:460] 发布于 2006-06-23 15:29:00
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\data.mdb;Persist Security Info=False;Jet OLEDB:Database Password=11
这样写肯定是可以的我试过的
如果还不行,你可以建立一个.uld文件
access密码的填写位子与别的数据库是不一样的,
在"所有"选项中的Jet OLEDB:Database Password属性中填写密码.
7 楼
绿玉斗 [专家分:150] 发布于 2006-06-23 16:46:00
[quote]瞎说,你知道Microsoft.Jet.OLEDB.4.0为什么连接不上吗?因为你没有在"所有"最后一页中的 jet oledb:database password编辑值,你把access密码写道那项里面,不可能连接不上,这个我曾经试过很多次,我无论什么数据库我都连接过,有的assess文件连接还要系统文件,我都用过,怎么会出错连接不上,我真不信![/quote]
我快崩溃了,"所有"项里的jet oledb:database password我编辑了呀,可就是连接不上,提示错误为:
"测试连接失败,因为初始化提供程序时发生错误.无法启动应用程序.工作组信息方件丢失,或是已被其它用户以独占方式打开."
8 楼
nepenthe [专家分:460] 发布于 2006-06-23 16:51:00
绿玉斗
把你的qq号给我啊,远程控制我帮你
9 楼
绿玉斗 [专家分:150] 发布于 2006-06-23 16:56:00
呵呵,解决了,
原因是我两个地方都写了密码,去掉一个就好了,,
感激楼上所有的朋友,,
10 楼
绿玉斗 [专家分:150] 发布于 2006-06-23 17:09:00
[quote]绿玉斗
把你的qq号给我啊,远程控制我帮你[/quote]
50384098 交个朋友吧,以后免不了还要请教,,
我来回复