已有打开的与此命令相关联的 DataReader,必须首先将它关闭——什么原因啊???

wzwen wzwen 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
已有打开的与此命令相关联的 DataReader,必须首先将它关闭——什么原因啊???


提示错误如下:


“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。

源错误:


行 40: string strSQL1 = "INSERT INTO wyx_user (wyx_name,wyx_pass) VALUES ('" + TextBox1.Text + "','" + password + "')";
行 41: SqlCommand cmd1 = new SqlCommand(strSQL1, ConnSql);
行 42: cmd1.ExecuteNonQuery();
行 43:
行 44: Response.Write("<script>alert('添加成功!')</script>");


源文件: f:\wyx3.0\wyxback\admin_adminadd.aspx.cs 行: 42


源码:

   protected void Button1_Click(object sender, EventArgs e)
{
string strConn = ConfigurationManager.ConnectionStrings["SperConnectionString1"].ToString();
SqlConnection ConnSql = new SqlConnection(strConn);
ConnSql.Open();
string strSQL = "SELECT * FROM wyx_user WHERE wyx_name='" + TextBox1.Text + "'";
SqlCommand cmd = new SqlCommand(strSQL, ConnSql);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())//如果用户名存在
{
Response.Write("<script>alert('对不起,用户名已被注册,请换个名称,谢谢!')</script>");

}
else
{
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, "MD5");

string strSQL1 = "INSERT INTO wyx_user (wyx_name,wyx_pass) VALUES ('" + TextBox1.Text + "','" + password + "')";
SqlCommand cmd1 = new SqlCommand(strSQL1, ConnSql);
cmd1.ExecuteNonQuery();

Response.Write("<script>alert('添加成功!')</script>");
}

dr.Close();
ConnSql.Close();


Response.Redirect("admin_admin.aspx");//返回管理页面

}



说明一下,这个程序的功能是添加管理员

数据库里的管理员表是wyx_user

我估计是if语句有问题,因为要考虑到如果添加的用户名已经存在,就要给出提示信息
...全文

相关推荐

评论 17
收藏 已收藏
分享
返回顶部
wzwen
.NET社区 62,272 成员 668,968 内容