我收到以下错误:
HTTP错误404.0 - 未找到您正在寻找的资源 删除,更改名称或暂时不可用
使用以下代码:
SqlConnection cn = new SqlConnection(@"Data Source=bpnaidu-pc\sqlexpress;Initial Catalog=UserLogIn;Integrated Security=True;Pooling=False");
cn.Open();
SqlCommand cmd = new SqlCommand( "INSERT INTO regd values('" + ddl_signup.Text + "','" + txt_user.Text + "','" + txtEmail1.Text+ "','" + txtPassword.Text + "','" + txtConPassword.Text + "')", cn);
cmd.ExecuteNonQuery();
Response.Redirect("welcome to "+txt_user.Text.ToString());
Response.Redirect("Home.aspx");
cn.Close();
问题出在哪里?
答案 0 :(得分:0)
虽然问题没有直接明确,但答案是。问题出在这一行:
Response.Redirect("welcome to "+txt_user.Text.ToString());
Response.Redirect将浏览器发送到参数中指定的网页,因此您尝试将浏览器发送到名为“welcome to {...}”的页面。我发现这不太可能。我怀疑你真正想要的是:
Response.Write("welcome to "+txt_user.Text.ToString());
Response.Write只是将文本字符串直接发送到HTTP输出缓冲区。
然而,您通过重定向到Home.aspx
立即对此进行了跟进,所以实际上该行实际上什么也没做,因为您刚刚将输出写出来,告诉浏览器重定向到另一个页面,所以用户不会看到您的欢迎信息。
我还想指出你也对SQL注入攻击持开放态度 - 你的界限:
SqlCommand cmd = new SqlCommand( "INSERT INTO regd values('" + ddl_signup.Text + "','" + txt_user.Text + "','" + txtEmail1.Text+ "','" + txtPassword.Text + "','" + txtConPassword.Text + "')", cn);
...对做坏事的用户开放;如果txt_user.Text
包含文本'); drop table regd;
,那么很有可能您最终会丢失一个regd表。要修复,您需要使用参数化的SQL语句。我强烈建议您通过阅读Jeff Atwood的blog article about this以及如何减轻这一点来跟进。