错误信息:
无法打开登录 'vote' 中请求的数据库。登录失败。
用户 'sa' 登录失败。行 16:             //链接数据库
行 17:             SqlConnection con = DB.createConnection();
行 18:             con.Open();
行 19:             //查询投票标题
行 20:             SqlCommand cmd = new SqlCommand("select voteTitle from voteMaster where voteId = 1");
  注:其中DB.cteateConnection();
    public class DB
    {
        public static SqlConnection createConnection()
        {
            SqlConnection con = new SqlConnection("server=localhost;database=vote;Persist Security Info=True;User=sa;Password=liang");
            return con;        }
    }
密码没有错!不明白为什么?求教!我用是sql2008、visual studio 2010!

解决方案 »

  1.   

    server=localhost\\实例名 你不是用的默认实例吧
      

  2.   

    1、数据库的登录模式是不是混合登录模式?2、sa的密码有没有问题,可以试试直接通过数据库客户端工具Management Studio之类的直接登录看看。
      

  3.   

    常见的SQL Server连接失败错误以及解决方法http://topic.csdn.net/u/20100424/18/2966ce4d-dfa4-4368-b247-0d337b23aaa9.html?42355A--SQL Server 不存在或访问拒绝错误有以下可能:
    a.SQL Server名称或者IP地址拼写有误
    b.服务器端网络配置错误
    c.客户端网络配置错误解决步骤:
    1.检查网络物理连接
    ping 服务器名称 或者 ping 服务器ip地址
    ===》ping 服务器ip地址失败 :说明物理连接出问题,需要检查硬件设备;需要注意将防火墙关掉,因为它也许会屏蔽你的PING命令
    ===》ping 服务器ip地址成功 ping 服务器名称失败:说明服务器名称有问题。如果服务器和客户端不在同一局域网内,很可能无法直接使用服务器名称标志服务器。2.使用Telnet命令检查SQL Server服务器工作状态
    Telnet 服务器IP地址 14323(默认端口号)
    ===>如果有“无法打开连接”的信息,说明你的SQL Server服务没开启,或者你的TCP/IP协议没有启用,或者你的服务器没有在端口1433上监听3.检查服务器端的网络配置,看是否启用命名管道,是否启用TCP/IP协议
    这个可以在不同版本的SQL Server自带的工具管理器里找到,比如2000是服务器网络使用工具 2008是SQL Server配置管理器4.检查客户端的网络配置,查看使用的协议
    一般需要启用命名管道;
    B--用户sa登入失败错误有以下可能:
    1.你的登入身份为“仅WINDOWS身份登入”
    2.你改完登入方式后,设置账户后没有运行sp_password 第一个原因解决方法:以2000为例:
      1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server 
      2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡 
      3.在"身份验证"下,选择"SQL Server和 Windows ". 
      4.重新启动SQL Server服务. 
      在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,那就通过修改注册表来解决此问题: 
      1.点击"开始" "运行",输入regedit,回车进入注册表编辑器 
      2.依次展开注册表项,浏览到以下注册表键: 
      [HKEY_LOCAL_MACHINESOFTWARE Microsoft MSSQLServer MSSQLServer] 
      3.在屏幕右方找到名称"LoginMode",双击编辑双字节值 
      4.将原值从1改为2,点击"确定" 
      5.关闭注册表编辑器 
      6.重新启动SQL Server服务;第二个原因解决方法:SQL Server2005 
    1.登陆设置改为,Sql server and windows Authentication方式同时选中,
    具体设置如下:
        manage管理器->windows Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>Sqlserver and windows Authentication方式同时选中.2:设置一个Sql server方式的用户名和密码,具体设置如下:
        manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa'  这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,      用户名为sa ,密码为:sa123456的用户进数据库了.
    3:用SSMS运行的 sp_password null,'sa123456','sa'    然后重新启动SQL;
    C--连接超时如果遇到这样的错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。
    这种情况比较少见,一般发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。
    有些情况下,由于局域网的网络问题,也会导致这样的错误。
      要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。
      具体步骤为:
      企业管理器中的设置:
        1、在企业管理器中,选择菜单上的"工具",再选择"选项";
        2、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;
        3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。
        查询分析器中的设置:
        单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0
    顺便提下登入的1069错误:症状:
        由于更改了你的计算机名字,再次启动时,就会发生“由于登入失败而无法启动服务”的情况。
    解决方法:
        1.改回你的计算机名字;
        2.使用控制面板,找到MS SERVER服务,更改启动账号信息到安装时候的信息,再启动服务;
        3.创建一个用户,专门用于启动服务,安装SQL的时候就用该用户启动SQL Server,这样可以避免频繁更改administrator带来的1069错误。
          即使已经安装好了SQL Server,你也可以在控制面板下的服务里的服务账号信息更改到那个专门启动的用户。
      

  4.   

    1.服务器上防火墙先关掉试试.2.检查SQL Server是否启用了SQL验证方式.
      

  5.   

    谢谢大家呀!
    第一次问问题,得到大家的积极回答!
    我解决了,应该和一楼讲的 是实例的问题!
    改成
    Data Source=SURCREAK\\SURCREAK;Initial Catalog=vote;Persist Security Info=True;User ID=sa;Password=xxx
    就对了
    再次感谢大家!!!