locked
VS2008_VB 中ACCESS 数据库连接路径问题 RRS feed

  • 问题

  •  

    请教:

       1。在VS2008_VB中,顺序点击“数据-添加新数据源-数据库-新建连接-更改-MS ACCESS数据库文件”,在出现的“新建连接”对话框中,没有出现选择数据源路径的选项,而且在“杂项”下,有一个connectionString,要求手工设置值,如果我数据库文件位于D:\ME.MDB,问:这个值应该怎么填?

        按照帮助文件中的说法,这个值并不需要手工填写,“浏览”找到实际的数据库后系统会自动生成,但我的没有“浏览”选项,当然也没有生成,而且手工填写的符合要求的字串也总是提示出错——总之无法在图形界面正常添加数据连接;

       2.如果在上一步中不选择“MS ACCESS数据库文件”,而是选择“Microsoft ODBC 数据源 (ODBC)”,接下来选择“使用连接字符串”——“文件数据源”——选择同一个数据库,则会生成一个DSN和连接字符串,数据在测试中可以正常通过控件在窗体中显示——就是说在图形界面可以正常添加ODBC连接的数据库(虽然指向的是同一数据库)!

     

      问题是:

      1.如果将应用程序发布到不同的机器上,怎样才能保证数据库文件与安装程序处于同一目录而能正常访问(帮助文件中说会有提示,能自动生成相应的字串),应该怎样手工修改连接字符串?

      2.这个添加数据源的界面与帮助文件中介绍的不一样,为什么?

      3.另外,本人觉得用向导的方式添加数据源和数据集比较方便,不想使用纯代码手工编码的方式,因而在如何修改连接字符串上遇到了上述问题,请高手指教!

      谢谢!

    2008年5月3日 6:53

答案

  •  

    问题解决,原因找到

      出现不能正常添加数据库的原因找到:
      问题出在操作系统或其配置上:

      1.应该安装完整版本的操作系统

        经验证,出现问题的操作系统并非完整版本:使用的是本人自己制作的万能克隆版本——制作这个万能版时,为减少文件大小,特地对它进行了“优化”,比如清理了垃圾,删除了一些无用的文件,用第三方程序清理了注册表等,虽然这个版本安装快捷(只需要几分钟可安装在任何机器上),常规使用也未见异常,但在用VS添加数据库时暴露出了这个问题;

       2.完整版本未见异常

        借升级XPSP3之机,本人重新用原始操作系统文件整合SP3,未作任何优化,安装后添加数据库正常;

       3.进一步验证寻找原因

          验证发现,当用一款第三方注册表清理程序进行注册表清理后,数据库添加出现异常——立即还原注册表,重启后恢复正常!
       4.复查

          检查后发现,注册表清理程序删除了一些注册表键,主要是删除了一些与DLL相关键和其它键值后引发的,如果只清除一些常规垃圾,则不会出现问题。
     

          结论:
         当对系统核心组件(如注册表)进行操作时,要做好备份,小心操作,如发现问题,可立即还原。——一般情况下,要慎用不成熟的第三方的系统管理程序!

     

        从发现问题到解决问题,历时一月有余,其间经历了种种磨难,也得到了大家的帮助,在此一并感谢;

       也希望本文能对遇到同样的或者类似问题的朋友有所帮助!

    2008年5月30日 4:09

全部回复

  • connectionString写
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ME.MD;User Id=admin;Password=;
     
    数据库连接一般写配置文件中,程序安装时由安装程序修改,如果是Access数据库,一般是放在应用程序的文件夹下,数据库连接则是由程序启动时自动计算,
    如果是Web程序,则
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ME.MD;User Id=admin;Password=;
    这样,数据库放在 Data_App目录下,数据库连接不必进行修改

     

    2008年5月3日 8:42
    版主
  • 孟老师和各位高手好:

        首先感谢您抽时间回答我的低级问题,给您鞠躬了!

        按照您的提示,我填入后(更正下,我的数据库文件是me.mdb),出错提示与先前的一样:“从索引0处开始,初始化字符串的格式不符合规范”!

     

        您指点的字符串我也从其它的示例中参考过,作必要后的修改后尝试过N次,但出错提示一样。

     

        我仔细阅读了帮助文件,发现,帮助文件中说的一些过程(对话框),在我的数据库添加过程中始终不能出现,按照微软的风格或者说常规作法,应该是选定数据源后会出现一个选择具体数据库文件路径的对话框或者按扭,然后才会生成连接字符串,以下就是摘自帮助文件文件的步骤:

     

         ......
     
       4.“数据库文件名”框中输入 .mdb 文件的路径,或单击“浏览”按钮以查找数据库文件。
       5.如果您的数据库需要,请输入登录信息。有关更多信息,请参见添加/修改连接 (Microsoft Access)。
       6.单击“确定”,然后单击“下一步”
       7.选择“是”将 .mdb 文件复制到项目中,或选择“否”连接到处于其当前位置的数据库文件。有关更多信息,请参见如何:管理项目中的本地数据文件。
     
       ........
     
        以上步骤在我选择修改为“Microsoft Access 数据库文件”后始终没有出现,显然,第7步就是我解决我的问题的关键一步!
     
       我的编程环境为:XPSP3/OFFICE2007 PRO PLUS /VS 2008,安装这些程序时均没有出错提示,VS 的组件只没有安装 C ++和 SQL。
     
       我的应用程序中原来是没有数据库的,现在想添加数据记录,老实说,用纯代码我不太熟悉,也麻烦,如果用ODBC连接,对我的程序而言,似乎小题大作,因而请大师和各位指点迷津。
     
        再次谢谢大师和各位高手!
     
    2008年5月3日 10:00
  • 如果不行先手工输入:

    cnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Me.mdb"

     

    我这里从未出现过这样的问题。

     

    或者在Winform上添加DataGridView(Webform类似),重新配置数据源。

     

     

    2008年5月3日 11:20
    版主
  • 不知道其他人有没有和我同样的经历?

     

    难道是VS 2008 的添加“MS ACCESS数据库文件”这个功能有问题?

    或者VS 2005 可以?

    或者 OFFICE 的版本应该是2000-2003,不能为2007?

     

    真是不明白,简单的问题变得这么复杂,真是没想到!

     

          接下来,我又要重装系统为XPSP2, 用VS 2005 --OFFICE 2003试下,可惜前天将系统备份删除了,谁想到还会有这一手,真是浪费时间!

     

     

    2008年5月4日 5:25
  •  

    我的测试环境:

    vsts 2008+window server2003 sp2+office 2007测试没有问题。

    应该说,这个功能应该是很早都实现的。

    你看看别人的机器相同的环境是否也有此问题。

     

     

    2008年5月4日 5:35
    版主
  • 把你的connectionstring贴出来看看

    2008年5月5日 1:41
    版主
  •  

    最新进展:

      今天在另一台机器上重装了XPSP2系统,安装了VS 2008 和OFFICE 2003,试验结果:同样不行!

     

      添加新数据源重新选择为“MS ACCESS数据库文件”——“新建连接”后出现的对话框是下图

    http://www.killnum.cn/images/simple/que.gif

        在此对话框中,按照几位大师提供的字符串进行修改为正确的数据库名、路径后填入,均会弹出“从索引0处开始,....”的错误对话框,无法进行下一步!

     

     真是不明白,怎么会这样子?

     

      帮助文件中的东西为什么就不能在VS 2008中重现呢?添加新的“MS ACCESS数据库文件”会和帮助文件中的说明完全不同呢?

     

     

      下一步: 安装VS 2005--(OFFICE2003, OFFICE2007)分别试下!

     

      真是服了微软大哥了!

    2008年5月5日 9:43
  •  

    5月8日  实验最新进展

     

       今天,在机房的服务器上(WINSERVER2003、OFFICE 2003)上安装VS2005 90天试用版,结果:能对“MS ACCESS数据库文件”成功添加连接,和帮助文件中的表述基本一样!

      

       真是不明白,一定要和服务器版结合才可以吗?——我总不能为了这个功能,将系统改成服务器版,且退回到VS 2005 吧?

     

       下一步实验:用(WINSERVER2003\OFFICE2003)与VS 2008 企业版配合,看行不行?——就算行,也不爽,因为还是服务器版的底子啊!

    2008年5月8日 1:44
  • 把代码拷到不能运新的那台机器看看

    2008年5月8日 1:55
    版主
  •  

    实验最新进展(5/8,20:00):

         

        在SERVER 2003系统上,VS2005_VB(90天试用版)/VS_2008(RTM)两者配合OFFICE2003、2007均能正常添加“MS ACCESS数据库文件”!能正常进行连接,能完成我的任务!

     

        本人就是不明白,为什么在XP_SP2/SP_SP3系统上,无论是VS2005/VS_2008配合OFFICE203/2007均不能成功呢?

     

        不知道有人遇到过同样的问题否?

     

        要说明的是,我的XP系统是全新安装后,连杀毒程序都没有安装就开始实验的!而且VS2005/2008、OFFICE2003/2007在实验中也是完全安装,唯恐拉下什么功能!

     

        ——总不能将系统更换成服务器版再用VS2008吧?

     

        问题究竟出在哪里?(未必与IIS服务有关?在XP中没有添加这项服务进行实验,但想下觉得不可能是这个原因,因为数据库引用与这个好像没有关系,实验都只是用普通的WINDOWS应用程序而非WEB程序作平台的)

     

        只有请高指教了,如果有人用XP系统配合VS2008能完成“MS ACCESS数据库文件”的正常添加(非纯代码引用),请回复一下!谢谢了!

       

     

    2008年5月8日 13:29
  •  

    楼主是怎么调出那个添加链接的?

     

    好像没有见过的

     

     

    楼主,在VS2008里面,打开 服务器资源管理器 (不用新建项目),在数据连接里面右击,添加新的连接试试

     

     

    另外,看看系统是不是缺少什么组件,如 MDAC

    2008年5月10日 6:12
  •  

    目前解决办法

     

        1.将在XP系统上建立的ACCESS数据库以及某个VB项目文件所在的文件夹全部复制到服务器版机器上;

            2.在服务器版机器上运行VS2008,为工程项目添加好这个数据库,并测试正常运行后,再将工程文件夹全部复制回来XPSP3系统中:

           3.在本机(XPSP3)是运行VS2008,继续完成剩下的工作;好像也没什么问题!

     

           呵,只能这么做了,就是不知道什么原因造成的,真是郁闷!

     

         另外,上楼中说的这个组件已经是XP系统中的一部分,我用微软的工具进行了检测,而且在手动添加2.81SP1版的时候也是这么提示的,不用安装它,因为已经有了!

     

         未必其它人在XP系统上可以正常添加,就我的不行?__也没见人回复这个问题!

    2008年5月10日 7:33
  • 这个可是不好说了

     

    我很久之前用的时候,如果数据库在项目文件下,好像就不会出来那个 另外,我添加链接的界面感觉和你那个不同哦~

     

     

    看不到上边图的,看这个链接

    http://uploadingit.com/files/597152_dzdcc/access.png

    2008年5月11日 5:34
  •  

          楼上的朋友说的一点没错,在SERVER2003系统上无论是VS2005/VS2008配合OFFICE2003/2007,添加数据库时出现的界面就是你说的这个样子,这也是完全正常状态下的情况——我已经测试过了!

         我的图片是在在XP系统中的非正常状态下出现的。

     

         目前不明白的是:为什么在服务器版上可以,在XP系统上就不行?

         如果有人能找到答案,或者有人在XP系统上能重现数据库添加的正常界面的,请回复下。

      

         这里的人气好像也不旺,微软站点内还有比这更好的论坛吗?

     

        ——与正确答案无关的就不要再回复了,免得大家浪费时间,谢谢!

     

     

     

       

    2008年5月11日 9:28
  •  

    我的是vista sp1系统的,vs2008,现在出现你这样的错误。在以前是能用的,打开的连接就像上面的那个朋友发的那样的图http://uploadingit.com/files/597152_dzdcc/access.png。不知道何时起,vs2008出现过一次错误,就连接不上了。后来我又重新全新安装了一次vista sp1和vs2008,还是出现这样错误。
    2008年5月30日 0:22
  • 我那个截图是在Vista 下截的, 没有安装SP1

     

    这个问题,我怀疑是 Microsoft Jet OLE DB Provider 组件出错,或者没有安装

     

    Microsoft Data Access Components (MDAC) 2.8 SP1 

    http://www.microsoft.com/downloads/details.aspx?familyid=78CAC895-EFC2-4F8E-A9E0-3A1AFBD5922E&displaylang=zh-cn

     

    “此版本不包括 Microsoft Jet、Microsoft Jet OLE DB Provider、Desktop Database Drivers ODBC Driver 或 Visual FoxPro ODBC Driver。”

    看到上面那个, 我才发知道这个里面没有Microsoft Jet OLE DB Provider

     

    在网上没有找到 Microsoft Jet OLE DB Provider安装程序,(也许我懒了点)

     

    不过还是找到了相关的

     

    OLE DB 提供程序的安装

     

    安装 Microsoft Office 2003 时,将自动安装 Microsoft Jet 4.0 OLE DB Provider 和 Microsoft OLE DB Provider for SQL Server。同时也会安装其他 OLE DB 提供程序,包括 OLE DB Provider for ODBC Drivers 和 OLE DB Provider for Oracle。若要查看计算机上所安装的 OLE DB 提供程序的完整列表,可从“数据链接”文件中显示“数据链接属性”对话框,然后单击“提供程序”选项卡。

    http://office.microsoft.com/zh-cn/access/HP052606602052.aspx

     

    根据这个, 可以知道 2003 安装文件里面 一定有这个组件

     

     另一个是

    http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=zh-cn

    2007 Office system 驱动程序:数据连接组件
    此下载将安装一组组件,非 Microsoft Office 应用程序可以使用它们从 2007 Office system 文件中读取数据,例如从 Microsoft Office Access 2007(mdb 和 accdb)文件以及 Microsoft Office Excel 2007(xls、xlsx 和 xlsb)文件中读取数据。这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。
    此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。可以直接安装这个试试
    2008年5月30日 3:08
  •  

    问题解决,原因找到

      出现不能正常添加数据库的原因找到:
      问题出在操作系统或其配置上:

      1.应该安装完整版本的操作系统

        经验证,出现问题的操作系统并非完整版本:使用的是本人自己制作的万能克隆版本——制作这个万能版时,为减少文件大小,特地对它进行了“优化”,比如清理了垃圾,删除了一些无用的文件,用第三方程序清理了注册表等,虽然这个版本安装快捷(只需要几分钟可安装在任何机器上),常规使用也未见异常,但在用VS添加数据库时暴露出了这个问题;

       2.完整版本未见异常

        借升级XPSP3之机,本人重新用原始操作系统文件整合SP3,未作任何优化,安装后添加数据库正常;

       3.进一步验证寻找原因

          验证发现,当用一款第三方注册表清理程序进行注册表清理后,数据库添加出现异常——立即还原注册表,重启后恢复正常!
       4.复查

          检查后发现,注册表清理程序删除了一些注册表键,主要是删除了一些与DLL相关键和其它键值后引发的,如果只清除一些常规垃圾,则不会出现问题。
     

          结论:
         当对系统核心组件(如注册表)进行操作时,要做好备份,小心操作,如发现问题,可立即还原。——一般情况下,要慎用不成熟的第三方的系统管理程序!

     

        从发现问题到解决问题,历时一月有余,其间经历了种种磨难,也得到了大家的帮助,在此一并感谢;

       也希望本文能对遇到同样的或者类似问题的朋友有所帮助!

    2008年5月30日 4:09
  •  

    原来是优化工具还害得啊

     

    我也是深受痛苦

     

    之前清理了一下注册表, 无意中, 把 Windows installer 下的一些东西删掉

    导致 使用MSI安装的东西无法正常卸载 和安装 (不过,我还是有工具可以处理的) (我的Office 2007 无法安装新的补丁了)

     

    最郁闷的是,

    在我装完VS2008 ,整理完硬盘后,才发现这个问题。。。。

    (那时还原注册表一晚 。。。。)

     

    PS。 我说的这个是我家里的机器,上面那个截图是公司的机器,因为出来了, 家里的机器之一没有照料

    2008年5月30日 6:49
  • 希望能有具体解决方法,我不想重装系统。我的第一次可以后来不知道干了什么就不行了。
    2008年11月1日 6:00
  • 我也有同样的问题。

    系统:Windows VISTA Ultimate SP1、 Visual Studio 2008 专业版 SP1、Access 2007 SP。

    如果说问题是由于注册表被优化而产生的,那么有什么具体的措施可以恢复吗,重装一次软件太麻烦了。

    2008年11月2日 14:37