很郁闷,弄了好长时间也没连接上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.(这些都是看往山写的,改的.)
哎呀,最后,在社区里问了问,把localhost改成(local)就可以了.....真不知道为什么.
-----------------------------------------------------------------------------------------------------------
哎,试试连接Access吧.
string sqlStr="Provider=Microsoft.Jet.OleDb.4.0;Data source="+Server.MapPath("dotnettest.mdb");
OleDbConnection conn=new OleDbConnection(sqlStr);
conn.Open();
Label1.Text="Database:"+conn.Database+"<br>"+
"Datasource:"+conn.DataSource+"<br>"+
"State:"+conn.State;
conn.Close();
高兴啊,看到state:open了..呵呵,
关于连接sql我会尽快解决呵呵
---------------------------------------------------------------------------------------------
下面是在网上找的,感觉对于我这样的新手很有用就粘贴下来珍藏了.(加粗的地方,我认为我应该注意)
连接Access
首先看一个例子代码片断:
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:/BegASPNET/Northwind.mdb";
OleDbConnection objConnection=new OleDbConnection(strConnection);
......
objConnection.Open();
objConnection.Close();
......
--------------------------------------------------------------------------------
解释:
连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.
"Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的.
"Data Source=C:/BegASPNET/Northwind.mdb"是指明数据源的位置,他的标准形式是"Data Source=MyDrive:MyPath/MyFile.MDB".
ps:
1."+="后面的"@"符号是防止将后面字符串中的"/"解析为转义字符.
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strConnection+="Data Source=";
strConnection+=MapPath("Northwind.mdb");
这样就可以省得你写一大堆东西了!
3.要注意连接字符串中的参数之间要用分号来分隔.
"OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.
"objConnection.Open();"这用来打开连接.至此,与Access数据库的连接完成.其余操作(插入,删除...)请参阅相关书籍
连接SQL Server
例子代码片断:
using System.Data;
using System.Data.SqlClient;
...
string strConnection="user id=sa;password=;";
strConnection+="initial catalog=Northwind;Server=YourSQLServer;";
strConnection+="Connect Timeout=30";
SqlConnection objConnection=new SqlConnection(strConnection);
...
objConnection.Open();
objConnection.Close();
...