注册 登录
编程论坛 ASP.NET技术论坛

[求助]数据库连接问题(菜鸟学做BBS)

guanjun 发布于 2007-08-25 11:16, 1474 次点击

我是菜鸟,在做一个BBS注册时和数据库相连,怎么老是出现以下错误,麻烦各位大侠帮小弟看看是什么错误?
不胜感激


ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。

源错误:


行 104: string sql = "select * from Users where UserName='" + this.TextBox1.Text + "'";
行 105: SqlCommand cmd = new SqlCommand(sql, conn);
行 106: SqlDataReader reader = cmd.ExecuteReader();
行 107: if (reader.Read())
行 108: {

7 回复
#2
guanjun2007-08-25 11:27
一定要回复啊,由于小弟是自学,这个问题解决不了,很难进行下去啊
#3
yunfangfang2007-08-25 11:45
你没有打开数据库的连接啊
conn.open();
#4
guanjun2007-08-25 12:00

<script language="C#" runat="server">
void Button1_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
if (UserValid())
{
SqlConnection conn = new SqlConnection("server=(local);database=bbs;uid=sa;Pwd=ggj840507");
string sql = "Insert into Users(UserName,Password,Email) values('" +
this.TextBox1.Text + "','" + this.TextBox2.Text + "','" + this.TextBox4.Text + " ')";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
}
catch
{
}
finally
{
cmd.Dispose();
conn.Close();
}
this.Panel1.Visible = false;
}
else
{
this.Label1.Visible = false;
}
}
}


private bool UserValid()
{
SqlConnection conn = new SqlConnection("server=(local);database=bbs;uid=sa;Pwd=ggj840507");
string sql = "select * from Users where UserName='" + this.TextBox1.Text + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
return false;
}
else
{
return true;
}
}
</script>

楼上的那位MM,你看嘛,我有那句打开数据连接话,问题还是依旧。。。。。。。。

#5
guanjun2007-08-25 12:02

咦,怎么没了呢,我不会变的这么粗心吧,等会我加上看看。。。。。

#6
guanjun2007-08-25 12:09
非常谢谢哈,好象有点好转咯,最后一个小问题,你想回答的话我就不需要查资料咯,请问下open()在哪个名字空间里?
#7
guanjun2007-08-25 13:14
4楼的加上conn.Open()后,请问下我的数据怎么写不进数据库内,我用的VS2005+SQL2005。
急,麻烦个位大侠看下4楼的代码,然后给出指正,谢谢
#8
console2007-08-25 20:10
你的数据库服务不会没有启动吧

还有检查你的字段的 大小

先把 sql 语句放在 查询分析器中 执行看看
1