A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何建华 黑马帝   /  2011-11-22 11:11  /  3794 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何建华 于 2011-11-22 14:27 编辑

     程序出现连不上SQLServer 数据库服务器,应该怎样排除这个故障?有哪些方法呢?

8 个回复

倒序浏览
付炯 黑马帝 2011-11-22 11:15:49
沙发
连不上数据库可能有很多原因 最好能具体说明一下
从数据库本身和数据库连接等方面进行考虑吧
回复 使用道具 举报
是不是代码写错了,有一段神奇的代码:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            
if (dataDir.EndsWith(@"bin\Debug\") || dataDir.EndsWith(@"bin\Release"))
            
{
               
        dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
               
        AppDomain.CurrentDomain.SetData("DataDirectory",dataDir);

            
}
你加了吗?
回复 使用道具 举报
连不上数据库有很多种原因 但是大体上来说你可以在这两个方面找原因
1. 你的数据库服务器有故障 比如服务没启动 或者你没开启tcp ip
2. 你的程序有问题,比如连接字符串错误 等等。
。。。。
回复 使用道具 举报
1.用JDBC-ODBC桥接法连接数据库
这种情况下是不需要驱动程序的,但是需要创建JDBC-ODBC数据源
将数据库附加到sql server数据库服务器之后,需要配置数据源
用代码建立连接的方式:
try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection("jdbc:odbc:数据源名称","用户名","密码");
}catch(Exception e){  
...
}
2.用JDBC连接数据库
这种情况是需要驱动包,但是不需要创建数据源:
(1).如果你用的是sql server2000,还需要打上补丁包chs_sql2ksp3.exe,打上之后进行测试看是否成功,具体方法自己到网上搜索吧
在连接数据库前,需要在你的项目中加入3个驱动包(到网上下载)
用代码建立连接的方式:
try{
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String uri= "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=项目中创建的数据库名字";
    con=DriverManager.getConnection(uri,"数据库用户名","密码");

}catch(Exception e){  
...
}
(2).如果你用的是sql server 2005,也需要打上相应的补丁包,其他操作和sql server 2000的操作差不多

通过这几种方式,检查你的连接数据库的代码是否有误,进行修正,可以试一试。
回复 使用道具 举报
可能是数据库服务器没运行,也可能是你的数据库版本和VS的版本问题,需要打补丁,也可能是程序代码问题,比如数据库链接字符串没写对,总之原因很多。。。。。。
回复 使用道具 举报
毕山山 黑马帝 2011-11-22 13:34:37
7#
连不上会有报错的吧,看你那地方错了, 一般有数据库服务器没打开, 连接字符串写错了,忘了写open()方法等等...这要看你的具体情况了,根据具体情况排除.
回复 使用道具 举报
张彪 黑马帝 2011-11-28 15:12:31
8#
在ADO.NET中数据库的链接代码:Source=.\SQLEXPRESS;AttachDBEilename=丨DateDirectory丨\Database1.mdf;Integrated Security=True;User Instance=True;。其中".\SQLEXPRESS"表示本机的SQLEXPRESS实例。
如果代码正确那么就是你的数据库服务出现了错误

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
王伟 黑马帝 2011-11-28 15:19:36
9#
请你考率一下几个问题
1.sql服务器身份验证方式未开启
  我们在进入management studio 的时候有两种身份验证,一种是windows验证,一种是sqlserver验证,在写sqlconnection连接字符串的时候,如果写的是sqlserver验证方式,注意把服务器属性中的安全性中的服务器身份验证改为“sqlserver和windows验证”。
2sa用户未设置为启用状态
有些人喜欢用默认的sa账户登录。在安全性中的登录名中找到sa,右键属性,状态栏中,设置启用sa。
3tcp/ip协议没启用
打开sqlserver配置管理器,在sqlexpress协议或mssqlserver协议中把tcp/ip状态改为启用。
注意:sqlexpress是装vs是带的免费版sql服务器,mssqlserver是装sqlserver2005或08的服务器,用哪个就要打开哪个。
4tcp/ip端口号改变
右键tcp/ip,属性,在ip地址栏中把端口号改为1433.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马