当前位置:编程学习 > C#/ASP.NET >>

asp.net 很奇怪地连不上数据库 求教!!!

我在VS2008里先建了个名为Student的解决方案,然后再Sudent文件夹里又建了个Student.Web文件夹.然后右键单击Student.Web文件属性,在Web共享里选中共享文件夹,然后单击确定.进入VS008里,右键单击Student解决方案,在添加里面单击新建网站,选中asp.net网站,位置选Http http://localhost/Student.Web,语言选Visual C#,然后单击确定.

在Default.aspx里面添加了两个textbox控件,一个确定按钮和一个Label控件,ID分别为txtName,txtPwd,btnSubmit,lblMsg.

最后在按钮单击事件里添加如下代码:

SqlConnection con = new SqlConnection(@"Data Source=3c249bee2a97469\sqlexpress;Initial Catalog=db_Student;Integrated Security=True");
        string sql = "select * from tb_User where UserName='" + txtName.Text.Trim() + "' and PassWord='" + txtPwd.Text.Trim() + "'";
        SqlDataAdapter sda = new SqlDataAdapter(sql, con);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        if (ds.Tables[0].Rows.Count > 0)
        {
            lblMsg.Text = "Yes";
        }
        else
        {
            lblMsg.Text = "No";
        }

运行时没问题,然后我在文本框输完字符,单击登陆出现了以下错误:

无法打开登录所请求的数据库 "db_Student"。登录失败。
用户 '3C249BEE2A97469\ASPNET' 登录失败。
Line 23:         SqlDataAdapter sda = new SqlDataAdapter(sql, con);
Line 24:         DataSet ds = new DataSet();
Line 25:         sda.Fill(ds);   //报错的地方
Line 26:         if (ds.Tables[0].Rows.Count > 0)
Line 27:         {
我用的是sql2005的数据库,数据库服务器名:3C249BEE2A97469\SQLEXPRESS

用户名:3C249BEE2A97469\Administrator  用的是Windows身份验证.


在线求教高手!!!! --------------------编程问答-------------------- 先用你的账户登录下SQL2005试试看!看看能不能登录,是不是SQL的服务没开,, --------------------编程问答--------------------

1.打开数据库企业管理器,然后选择数据库---安全性---找到刚才报错的哪个'ASPNET' --右键"属性"; 
2.选择"用户映射"选项---在里面将我们要访问的数据库选中 
3.先别点确定---再选择我们刚才选择的哪个数据库,在下面的"数据库角色成员身份"里要选择"db_owner"权限 

--------------------编程问答-------------------- 数据库安全哪里没有3C249BEE2A97469\ASPNET啊
--------------------编程问答-------------------- 可能是你的连接字符串错了,最简单的方法是,你拖一个sqlconnent控件进来,然后一步一步的选择你的数据库,成功之后把系统产生的字符串换上去,应该就没问题了 --------------------编程问答-------------------- 倒是有3C249BEE2A97469\Administrator  --------------------编程问答-------------------- 我就是拖一个sqlconnent控件进来,然后一步一步的选择数据库,成功之后把系统产生的字符串换上去,但.net不支持\,所以我就在前面加了@
--------------------编程问答-------------------- 服务器名有问题吧 --------------------编程问答-------------------- 真的很奇怪,我直接在VS2008里键一个asp.net网站,跟上面一样添加控件,然后写代码却能运行
--------------------编程问答-------------------- 谁能试试在自己的电脑里,按照我发的方法在做一遍,看看能不能运行成功,回来告诉我一下,非常感谢!!
--------------------编程问答-------------------- 学习中!!
--------------------编程问答-------------------- 不要用windows的集成身份验证
数据库---安全性---找到刚才报错的哪个'ASPNET账号'  
右键"属性";  
在里面将要访问的数据库选中  
在下面的"数据库角色成员身份"里要操作权限 --------------------编程问答-------------------- 服务器名看看运行的sql服务器名是不是3c249bee2a97469\sqlexpress或是直接复制VS中的数据库连接字符串 我这样做从来没错过 --------------------编程问答-------------------- 学习中~~ --------------------编程问答-------------------- 数据库中添加ASPNET用户。
顺便问一句哪位达人知道回帖时怎么加图片。 --------------------编程问答--------------------
引用 2 楼 teng_s2000 的回复:
SQL code

1.打开数据库企业管理器,然后选择数据库---安全性---找到刚才报错的哪个'ASPNET' --右键"属性"; 
2.选择"用户映射"选项---在里面将我们要访问的数据库选中 
3.先别点确定---再选择我们刚才选择的哪个数据库,在下面的"数据库角色成员身份"里要选择"db_owner"权限

没问题 就这么做! --------------------编程问答-------------------- 数据库连接字符串有问题吧 --------------------编程问答--------------------
引用 11 楼 wuyq11 的回复:
不要用windows的集成身份验证
数据库---安全性---找到刚才报错的哪个'ASPNET账号'  
右键"属性";  
在里面将要访问的数据库选中  
在下面的"数据库角色成员身份"里要操作权限


顶... --------------------编程问答--------------------
引用 4 楼 gudamzero 的回复:
可能是你的连接字符串错了,最简单的方法是,你拖一个sqlconnent控件进来,然后一步一步的选择你的数据库,成功之后把系统产生的字符串换上去,应该就没问题了

这是个很猥琐但很有效的办法。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,