ASP.NET连接数据库MS SQL

aiht 2007-06-26 07:05:25
http://blog.csdn.net/j2ee_ren/archive/2007/06/26/1666455.aspx
很郁闷,弄了好长时间也没连接上sql,不知道是什么原因:

下面是代码

先包含命名空间:

using System.Data;
using System.Data.SqlClient;

再在page_load里写入下面的代码:

string strConn="data source=localhost;Initial Catalog=northwind;User Id=sa;Pwd=mssqlfs;Integrated Security=SSPI";
SqlConnection sqlConn=new SqlConnection();
sqlConn.ConnectionString=strConn;
sqlConn.Open();

Label1.Text="数据源:"+sqlConn.DataSource+"<br>"+
"数据库:"+sqlConn.Database+"<br>"+
"当前状态:"+sqlConn.State;

sqlConn.Close();

这可是看着书上的例程写的,应该没错了.但是,每次打开都是错误.

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: SQL Server 不存在或访问被拒绝。

源错误:

行 30: SqlConnection sqlConn=new SqlConnection();行 31: sqlConn.ConnectionString=strConn;行 32: sqlConn.Open();行 33: 行 34: Label1.Text="数据源:"+sqlConn.DataSource+"<br>"+


源文件: e:\developor\ing\vvv\dotnettest\database\sqlconn.aspx.cs 行: 32

堆栈跟踪:

[SqlException: SQL Server 不存在或访问被拒绝。] System.Data.SqlClient.SqlConnection.Open() +761 DotNetTest.database.sqlconn.Page_Load(Object sender, EventArgs e) in e:\developor\ing\vvv\dotnettest\database\sqlconn.aspx.cs:32 System.Web.UI.Control.OnLoad(EventArgs e) +67 System.Web.UI.Control.LoadRecursive() +29 System.Web.UI.Page.ProcessRequestMain() +724




“/DotNetTest”应用程序中的服务器错误。
--------------------------------------------------------------------------------

SQL Server 不存在或访问被拒绝。



--------------------------------------------------------------------------------

版本信息: Microsoft .NET 框架版本:1.0.3705.0; ASP.NET 版本:1.0.3705.0

我的sql是8.0版本的,sql本机服务器的注册属性里,采用的是windows身份验证;安全性里的身份验证是sql server和windows.(这些都是看往山写的,改的.)

哎呀,真不知道怎么弄了.

大侠帮忙
...全文
210 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
suqx520 2007-06-26
  • 打赏
  • 举报
回复
大家的意见都是正确。不过我还是建议楼主在写连接数据库的时候能加上try{}catch(Exception){throw new Exception(ex.Message);}这代码,方便以后找错误信息。
papper 2007-06-26
  • 打赏
  • 举报
回复
大家的意见是对的,我再补充一点:你添加引用了没,你的using System.Data.SqlClient是能自动识别的吧?
bdbox@qq.com 2007-06-26
  • 打赏
  • 举报
回复
写个try调试一下就知道了吧。看看具体异常是什么。可能是连接字符串不正确吧。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
我的E-Mail:bdbox@163.com 请多指教!
zhaohui0312 2007-06-26
  • 打赏
  • 举报
回复
server=;Database=;user=;pwd=;
这是最简单的连接串
你的错误产生原因,就是数据库名不正确、用户名错误、密码错误、或者数据库引擎没有打开
ilovethisweb 2007-06-26
  • 打赏
  • 举报
回复
几种写法:
server=127.0.0.1
server=localhost
sserver=.
server=(local)
server=sql server 服务器名称
我也碰到过,用localhsot不行。换一种就行了
weizhuangzhi 2007-06-26
  • 打赏
  • 举报
回复
同意楼上,用(local)试一下
言士心 2007-06-26
  • 打赏
  • 举报
回复
把Page_Load里的第一行改一下,data source改为server=(local)应该就可以了
designonline 2007-06-26
  • 打赏
  • 举报
回复
楼上正解,主要检查步骤
1.sqlserver服务器是否打开
2..net是否能连接ms sql.
3.检查连接字符串是否正确
gauzxj 2007-06-26
  • 打赏
  • 举报
回复
1。看下SQL有没有开
2。看下用户名跟密码是否正确
3。看下数据库名有没有写错
4。下面是一个连接SQL 的方法
//数据库连接字符串(web.config来配置)
//<appSettings><add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=;" /> </appSettings>
protected static string connectionString = ConfigurationSettings.AppSettings["ConnectionString"];
public DbManagerSQL()
{
}

#region 执行简单SQL语句

/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString,connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();

return rows;
}
catch(System.Data.SqlClient.SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
}
aiht 2007-06-26
  • 打赏
  • 举报
回复
嗯谢谢大家.我试了(local)就可以了,不知道为什么呢,我这书上这样说的.
Data source或Address或Server:数据源名称,为要连接的Sql server实例的名称,也可以是数据库所在主机的名称或主机的IP地址.若数据库服务器位于本地机器,可将其设置为localhost.

这里只能用(local),IP地址(127.0.0.1)或者localhost为什么不可以呢?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧