搞了好久搞不定vs2005链接到数据库,大家进来帮我看看?

phoenee 2006-11-03 09:53:14
数据库为sql server management studio,通过sa加密码的方式可以登录数据库

在vs2005中,为了试验能否链接到数据库,首先建立名为lianjie1.aspx的文件,然后在lianjie1.aspx.cx中写入代码,代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("data source=localhost;
uid=sa;pwd=200531zzw");
con.Open();
Response.Write(con.State==ConnectionState.Open ? "链接成功!" : "链接失败!");
}
}

启动调试后,代码con.Open();出现错误提示:

用户代码未处理SqlExeception
在建立与服务器的链接时出错.在链接到sql server2005时,在默认的设置下sql server不允许进行远程连接可能会导致此失败(provider:命名管道提供程序,error:40-无法打开到sql server的连接)

在sql server外围应用配置器中,已经把"本地计算机"指定为要配置的计算机.

迷惑中.100分诚心相送


...全文
693 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongwanli 2006-11-03
  • 打赏
  • 举报
回复
未指定数据库
snoopymin 2006-11-03
  • 打赏
  • 举报
回复
把localhost 改成 "(local)"
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
这个问题一般不是连接字符串的问题
我也不知道到底问题是什么 抱歉如果实在不行 建议你重装一下
因为我一般重装之后就OK 了
不好意思帮不到你..
phoenee 2006-11-03
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("data source=localhost;database=login;
uid=sa;pwd=200531zzw");
con.Open();
Response.Write(con.State==ConnectionState.Open ? "链接成功!" : "链接失败!");
}
}
这段代码应该不需要web.config文件来配置数据库链接字符串的啊.因为通过代码已经得到了

不明白是哪里的问题
phoenee 2006-11-03
  • 打赏
  • 举报
回复
这段代码Response.Write(con.State==ConnectionState.Open ? "链接成功!" : "链接失败!");

应该没问题吧?
phoenee 2006-11-03
  • 打赏
  • 举报
回复
每次都会显示"已经找到网站,正在等待回应".在弹出的IE页面顶部显示的是:

http://localhost:1541/lianjie1/lianjie1.aspx-Microsoft Internet Explorer

但是页面的进度条只能进行到一半,网页无法打开

同时vs2005显示错误提示:

用户代码未处理SqlExeception
在建立与服务器的链接时出错.在链接到sql server2005时,在默认的设置下sql server不允许进行远程连接可能会导致此失败(provider:命名管道提供程序,error:40-无法打开到sql server的连接)

//sdwn1987:
按照你说的步骤,我一步一步做了,最后重新启动机器.然后用vs2005接着调试该项目,但就是不行啊

已经搞了好多天了 心里很着急 还好我只是在学习中
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
你把上面大哥给你的例子都一一做一遍 耐心看完 文档 不要急...能搞定的
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
打开sql server 2005外围应用配置器
->服务和连接的外围应用配置器
->按实例查看
->MSSQLSERVER
->Database Engine
->远程服务
点选同时使用TCP/IP和named pipes选项 然后重起机器
重起机器就可以了,这样保险一点 如果不行的话 我一般就是按照上面的方法重装..
还有你先试试用 server=IP地址来试验一下
xzr2004 2006-11-03
  • 打赏
  • 举报
回复
我给你一个完整的数据库连接,如果还有问题去这里:http://blog.csdn.net/net_lover/archive/2006/10/23/1346700.aspx



Standard Security:

"Data Source=Aron1;Initial Catalog=pubs;User Id=myUsername;Password=myPassword;"
- or -
"Server=Aron1;Database=pubs;User ID=myUsername;Password=myPassword;Trusted_Connection=False"
(both connection strings produces the same result)




Trusted Connection:

"Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"
- or -
"Server=Aron1;Database=pubs;Trusted_Connection=True;"
(both connection strings produces the same result)

(use serverName\instanceName as Data Source to use an specifik SQLServer instance)
Connect via an IP address:
"Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=myUsername;Password=myPassword;"
(DBMSSOCN=TCP/IP instead of Named Pipes, at the end of the Data Source is the port to use (1433 is the default))
Enabling MARS (multiple active result sets):

"Server=Aron1;Database=pubs;Trusted_Connection=True;MultipleActiveResultSets=true"
Note! Use ADO.NET 2.0 for MARS functionality. MARS is not supported in ADO.NET 1.0 nor ADO.NET 1.1

Streamline your Data Connections by Moving to MARS, by Laurence Moroney, DevX.com >>
Attach a database file on connect to a local SQL Server Express instance:

"Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;"
- or -
"Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;"
(use |DataDirectory| when your database file resides in the data directory)
Why is the "Database" parameter needed? Answer: If the database was previously attached, SQL Server does not reattach it (it uses the attached database as the default for the connection).
Using "User Instance" on a local SQL Server Express instance:

"Data Source=.\SQLExpress;integrated security=true;attachdbfilename=|DataDirectory|\mydb.mdf;user instance=true;"
The "User Instance" functionality creates a new SQL Server instance on the fly during connect. This works only on a local SQL Server 2005 instance and only when connecting using windows authentication over local named pipes. The purpose is to be able to create a full rights SQL Server instance to a user with limited administrative rights on the computer. To enable the functionality: sp_configure 'user instances enabled','1' (0 to disable)
Using SQL Server 2005 Express? Don't miss the server name syntax: SERVERNAME\SQLEXPRESS (Substitute "SERVERNAME" with the name of the computer)
phoenee 2006-11-03
  • 打赏
  • 举报
回复
//sdwn1987
可是如何重起服务啊?本人刚刚开始学.昨天坐车跑到南昌买了两百多块钱的书,资料有限啊
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
对啊重起 服务
你要是不放心 就重起机器

象这个连接管道问题我遇到过很多次的..
照上面那个方法 我每次都成功了
但问题原因我还是不清楚..
lizhizhe2000 2006-11-03
  • 打赏
  • 举报
回复
1.SQL Server允许连接
2.
集成的Windows身份验证语法范例


string connectionString="server=localhost;database=Northwind;
integrated security=SSPI";


  程序代码说明:在上述语法范例的程序代码中,我们设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql
Server的计算机名,由于在本书中,ASP.NET程序和数据库系统是位于同一台计算机的,所以我们可以用localhost取代当前的计算机名。database表示所使用的数据库名,这里设置为Sql
Server自带的一个示例数据库--Northwind。由于我们希望采用集成的Windows验证方式,所以设置 integrated
security为SSPI即可。

  Sql Server 2005中的Windows身份验证模式如下:

Sql Server 2005中的Windows身份验证
  注意:在使用集成的Windows验证方式时,并不需要我们输入用户名和口令,而是把登录Windows时输入的用户名和口令传递到SqlServer。然后Sql Server检查用户清单,检查其是否具有访问数据库的权限。而且数据库连接字符串是不区分大小写的。
采用Sql Server身份验证的语法范例

string connectionString =
"server=localhost;database=Northwind;uid=sa;pwd=sa";

  程序代码说明:在上述语法范例的程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。uid为指定的数据库用户名,pwd为指定的用户口令。为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。

  Sql Server 2005中的Sql Server身份验证模式如下:

Sql Server 2005中的Windows身份验证
  如果你使用其他的数据提供者的话,所产生的连接字符串也具有相类似的形式。例如我们希望以OLE
DB的方式连接到一个Oracle数据库,其连接字符串如下:
string connectionString = "data source=localhost;initial
catalog=Sales;
use id=sa;password=;provider=MSDAORA";

  程序代码说明:在上述语法范例的程序代码中,通过专门针对Oracle数据库的OLE DB提供程序,实现数据库的连接。data
source 表示运行Oracle数据库的计算机名,initial catalog表示所使用的数据库名。provider表示使用的OLE
DB提供程序为MSDAORA。

  Access数据库的连接字符串的形式如下:
string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;
@”data source=c:\DataSource\Northwind.mdb”;

  程序代码说明:在上述语法范例的程序代码中,通过专门针对Access数据库的OLE DB提供程序,实现数据库的连接。这使用的的OLE
DB提供程序为Microsoft.Jet.OLEDB.4.0,并且数据库存放在c:\DataSource目录下,其数据库文件为Northwind.mdb。

  现在我们就可以将数据库连接字符串传人SqlConnection()构造函数,例如:


string connectionString =
"server=localhost;database=Northwind;uid=sa;pwd=sa";
SqlConnection mySqlConnection = new
SqlConnection(connectionString);

  或者写成
SqlConnection mySqlConnection =new SqlConnection(
"server=localhost;database=Northwind;uid=sa;pwd=sa");


  在前面的范例中,通过使用“new“关键字生成了一个新的SqlConnection对象。因此我们也可以设置该对象的ConnectionString属性,为其指定一个数据库连接字符串。这和将数据库连接字符串传人SqlConnection()构造函数的功能是一样的。


SqlConnection mySqlConnection = new SqlConnection();
mySqlConnection.ConnectionString =
"server=localhost;database=Northwind;uid=sa;pwd=sa";


  注意:只能在关闭Connection对象时设置ConnectionString属性。
phoenee 2006-11-03
  • 打赏
  • 举报
回复
//sdwn1987

你说的"重起"是指重新起动数据库引擎服务吗?如果是,请问如何重新起动数据库引擎服务?
hero4u 2006-11-03
  • 打赏
  • 举报
回复
string connstr = "Data Source="+server+";Initial Catalog="+database+";User ID="+user+";Password="+pass;
建议你把数据库选项卡调出来。然后用哪个配置一个链接的。选中链接在右下角属性选项卡里面,把链接字符串copy出来。全要也可以,截取部分也行。
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
如果还不行 就先卸载
然后重装 如果重装过程中出现两个以上的不合格选项
打开注册表
进入/HKEY_LOCAL_MACHINE/SOFTWARE/MICROSFOT/WINDOWS NT/CURRENTVERSION/PERLIB
先记住counter的值 和Help的值
如果你的系统是英文的 请进 004文件夹 如果是中文 进009
然后把counter的值和help的值修改为 004/009 文件夹中相应文件中最大的值
重新再连
一般就没问题了..
如有误导 找我领导..
股神 2006-11-03
  • 打赏
  • 举报
回复
up
phoenee 2006-11-03
  • 打赏
  • 举报
回复
//停不下的脚步
SqlConnection Conn = new SqlConnection("Server=.;Database=1tiao;uid=sa;pwd=sa;");

按照你的代码,我把data source修改为Server=.;但问题依然如旧

修改的代码是: SqlConnection con = new SqlConnection("Server=.;Database=login;user id=sa;pwd=200531zzw");

但还是不行

sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
->远程服务
点选同时使用TCP/IP和named pipes选项 然后重起..
sdwn1987 2006-11-03
  • 打赏
  • 举报
回复
上面如果不行
请打开sql server 2005外围应用配置器
->服务和连接的外围应用配置器
->按实例查看
->MSSQLSERVER
->Database Engine
fangq 2006-11-03
  • 打赏
  • 举报
回复
SqlConnection Conn = new SqlConnection("Server=.;Database=1tiao;uid=sa;pwd=sa;");
加载更多回复(20)

62,041

社区成员

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

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

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

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