本帖最后由 zhlicen 于 2012-04-03 00:47:11 编辑

解决方案 »

  1.   

    我建议您先建一个扩展名为UDL的文件,试着连接,如果能连接成功,复制UDL的第二行内容为连接字符串.
      

  2.   

    新建一个文件命名为1.udl
    双击打开
    选择Microsoft OLE DB Provider for SQL Server
    连接:1.使用windows NT集成安全设置------>测试连接成功
          2.使用指定的用户名密码,并输入sa及密码------>测试连接失败,因为初始化提供程序时发生错误,用户‘sa’登录失败
      

  3.   

    我没用过Sql2008,所以不好回答您的问题,一般情况出现这种事情,应该这样处理:1.阅读产品说明,看是不是已知问题或兼容性问题,如果是,看官方给出的解决方法.2.尝试其他方式连接,比如用其他语言或开发工具测试,总结规律,试着找出原因.3.从自身的代码找原因,比如连接字符串的写法,比如我看您原贴中server一项一直是localhost,试试改为本机地址,本机机器名,环回地址,加端口号,将UID换为 user ID,将database改为msdb等.因为对于这些东西的兼容写法很难搜到或结果太多,没法筛选,如果手头上没有官方的技术文档,多尝试下为好
      

  4.   

    字符串问题应该不大,因为localhost用windows验证登陆正常,编译器也能识别出‘sa’用户并提示登录失败
    MSDN给出错误代码对应的解释可能是登录名和密码的问题,不过我也确认了没问题
    这两天网上搜这个问题,也发现蛮多出现这个问题的,不过结果大多都是不了了之
      

  5.   


    如果是这种情况,不排除是您的访问驱动有问题,可以试下从局域网内的其他机器连接另外高级点的软件防火墙也可能造成这种结果,尝试关闭任何软件防火墙还有一种可能就是本机的加密系统出现问题, 尝试将SA的密码加长到16位以上,或者这一代的加密系统存在BUG,需要进行WindowsUpdateSQL Server Management Studio的连接方式不一定必需采用和你应用程序相同的驱动,所以,不能以SqlWB的连接结果做为服务器设置正确的参考依据.
      

  6.   

    如果您确实收到"因为初始化提供程序时发生错误"这个提示的话,建议在其他机器上进行测试,估计本机驱动出现问题的可能性非常大,而这些东西大多都是与操作系统紧密关联的,从WinXP开始,出现这种问题已经很难修复了.
      

  7.   

    另外不排除有另一种可能,您的机器上纠竟安装有多少个SQL2008的实例或其他SQL Server版本的实例,请检查一下,之前一直用SQL Server Management Studio连接的,是不是您要在应用程序中连接的实例,特别是如果机器上安装许多不同SQL Server版本时,这个问题很容易被忽略.
      

  8.   

    解决了解决了!!!
    我刚发现sa不能登陆localhost,windows验证却可以
    sa登陆必须是localhost\SQLEXPRESS 这样就成功了!!
    UDL里测试多次终于成功~谢谢您!
      

  9.   


    我觉得您还是该检查一下,看看你过去是不是一直都在修改localhost\SQLEXPRESS 的密码,lacalhost和localhost\SQLEXPRESS 是两套完全不同的数据库,各有各的master,msdb,model库,互相之间一点联系都没有.连接这两个就和连接不同服务器上的数据库没有任何区别.
      

  10.   

    嗯。就是这个原因。因为我一直用的localhost\SQLEXPRESS....
    第一次接触这个没弄得太清楚,花了好多时间,现在才发现是这个问题
    还花了这么久卡在这里...太笨了..哈哈
    谢谢您...