我用的环境是vs.net 2003 iis 5.1 和sql server 2000
我建立了一个最简单的Webform ,上面只有一个控件DataGrid (id是dataone),
目的是检测我的运行环境是否 能连接数据库!!数据库访问代码是:
....
using System.Configuration ;
using System.Data .SqlClient ;
.....private void Page_Load(object sender, System.EventArgs e)
     {
// 在此处放置用户代码以初始化页面   
     String strconnection="server=local;database=Northwind;integrated security=true;";
     SqlConnection objconnection=new SqlConnection(strconnection);
     String strsql="SELECT FirstName,LastName,Country FROM Employees";
     SqlCommand objcommand=new SqlCommand(strsql,objconnection);
     objconnection.Open();
     dataone.DataSource=objcommand.ExecuteReader();
     dataone.DataBind();
     objconnection.Close();
      }
运行后出现的错误提示是: SQL Server 不存在或访问被拒绝。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: SQL Server 不存在或访问被拒绝。源错误: 
行 35:  String strsql="SELECT FirstName,LastName,Country FROM Employees";
行 36:  SqlCommand objcommand=new SqlCommand(strsql,objconnection);
行 37:  objconnection.Open();  //此行是红色的
行 38:  dataone.DataSource=objcommand.ExecuteReader();
行 39:  dataone.DataBind();
源文件: c:\inetpub\wwwroot\webapplication1\webform1.aspx.cs    行: 37 
堆栈跟踪: 
[SqlException: SQL Server 不存在或访问被拒绝。]
   System.Data.SqlClient.ConnectionPool.GetConnection(Boolean& isInTransaction)
   System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
   System.Data.SqlClient.SqlConnection.Open()
   WebApplication1.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication1\webform1.aspx.cs:37
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()
我的sql server 2000的服务器是开的,是默认的本地数据库服务器,iis也是运行状态,
访问数据库的代码是我从书上找的,没什么改动。为什么网页服务器连不上数据库呢!
 

解决方案 »

  1.   

    String strconnection="server=local;database=Northwind;integrated security=true;uid=用户名,pwd=密码";
      

  2.   

    String strconnection="server=(local);database=Northwind;integrated security=true;UID=sa;PWD=sa";
    密码如果有且是sa.
      

  3.   

    String strconnection="server=local;database=Northwind;integrated security=true;";
    ------>
    String strconnection="server=localhost;database=Northwind;uid=sa;psw='你的密码';";另外设置断点到 .Open出,看看State 就知道了。
      

  4.   

    以上方法都不行呀,我的数据库是windows身份验证的,而且我用的是sql server2000自带的数据库Northwind作的测试,还是open 处有错呀
      
      

  5.   

    除了上述的连接字符串外
    sqlserver 要设置成 sqlserver 和window验证(右击服务器->属性->安全性->身份验证)
    如果设置成windows身份验证 则连接字符串不能这么写
      

  6.   

    我的sqlserver 的身份验证是设置成 sqlserver 和window验证呀。到底问题在哪?
    我把这个例子放到 另一台刚装好vs.net的机器上,都是默认设置,还是出现一样的问题,要哭了
      

  7.   

    拖一个ide的sqlconnection到页面连接成功后直接用这个sqlconnection
      

  8.   

    建议将
    server=(local);database=Northwind;integrated security=true;UID=sa;PWD=sa
    中的服务器名称写成你机器名,再试一下.
      

  9.   

    还有 哪位好心的大虾顺便教一下调试的方法吧,我怎么才能让程序执行 .open() 的地方
    我想看看state,我试过在open的地方设置一个断点,但是弹出的窗口要我新建一个,还要输入函数 才能走,而且走到第一行(String strconnection="server=local;database=Northwind;integrated security=true;";)就走不动了,还是弹出open那出错, 
    跟vc6.0好多区别呀,有经验的说一下,恳求详细一些,拜托了
      

  10.   

    那位LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 的朋友,我按你的方法试了, 而且我在ConnectionSting属性中也连接Northwind成功了,能不能说一下怎么用它!?也就是我要完成的功能,把Northwind的数据放到控件DataGrid中显示出来!给一下代码好吗?
    谢谢大家了!!!!!!!!!!!!!!!!!!!
      

  11.   

    把这一行改一下
    String strconnection="server=local;database=Northwind;integrated security=true;";String strconnection="server=localhost;database=Northwind;uid=sa;psw='密码';";系统默认asp.net用户是受限制用户,使用不能使用集成验证
      

  12.   

    String strconnection="server=local;database=Northwind;integrated security=true;uid=用户名,pwd=密码";
    你没有指定用户是肯定不能连接的。