日期:2014-05-17  浏览次数:20513 次

sql数据库连接问题
本人初学asp.net,sqlserver也没有用过。网上有人说vs2008里自带的sql2005只能用于调试,如果建立站点还需要安装sql2005.但我在网上下了好几个版本都装不上,安装过程中老是提示错误,我的机子是win7。
  偶然的一谈,在vs里乱点,添加了一个数据连接。好像稀里糊涂的建了一个数据库节点,并添加了我需要的几张数据表。在asp页面上添加了gridview 通过配置数据源建立了连接,并把连接字符串存到了config文件中。
C# code
    <connectionStrings> <!--数据库连接字符串-->
        <add name="forconnstr" connectionString="Data Source=AKSLJ\SQLEXPRESS;Initial Catalog=forcastserver;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient"/>
    </connectionStrings>


但是现在,我想通过各种选择控件和后台程序来动态查询数据库,但连不上数据。
C# code

 protected void Button1_Click(object sender, EventArgs e)
    {
        DateTime MyDate = DateTime.Parse(TextBox1.Text);
        DateTime MyDate1 = DateTime.Parse(TextBox2.Text);
        //使用ADO连接数据库=AKSLJ\SQLEXPRESS
        //string SqlStr="Server=(local);user id=sa;Pwd=; DataBase=forcastserver";  //用这条语句连不上
        string SqlStr = "Data Source=SQLEXPRESS;Initial Catalog=forcastserver;Integrated Security=True;Pooling=False";
                         
        SqlConnection con=new SqlConnection(SqlStr);
        con.Open(); //[color=#FF0000]这里出错!!!![/color]

        string sql= "select * from test where 日期>='"+MyDate +"'and 日期<='"+MyDate1 +"'";
        SqlDataAdapter  dap=new SqlDataAdapter(sql ,con);
        DataSet ds = new DataSet();
        dap.Fill(ds);
        GridView2.DataSource = ds.Tables[0].DefaultView;
        
        con.Close();

    }



错误提示:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

另外还想问下,如何通过引用config里的数据库连接字符串实现连接sql.看书上写的,这样很方便。但书上的和我的连接字符串不太一样,按书上依葫芦画瓢写的语句有错误。
  还有就是通过页面配置数据源的时候,只能采用用windows登陆方式可以连通,但用sql用户登陆(书上用的user id="sa";pwd=;)不能连接。在选择数据文件的下拉菜单是空的,自己手动输入数据库文件名测试连接也连不上。不知道是怎么回事儿,请高人指点!!



------解决方案--------------------
1.把sql server 卸载了 再安装高版本的sql server
把数据库运行起来再说

可以的话 重装一下系统 安装vs的时候 去掉SQLEXPRESS 貌似是最后一个
------解决方案--------------------
嗯,Data Source=SQLEXPRESS这种链接建立的是嵌入式的SQLServer,不是服务器,重新装过吧。
------解决方案--------------------
//string SqlStr="Server=(local);user id=sa;Pwd=; DataBase=forcastserver"; //用这条语句连不上,(local)左括号是中文的,有错
 string SqlStr = "Data Source=SQLEXPRESS;Initial Catalog=forcastserver;Integrated Security=True;Pooling=False";
SQLEXPRESS是你的数据库服务器名称吗?换成你自己的数据库服务器名称