.NET 中的注册页错误
本文关键字:错误 注册 NET | 更新日期: 2023-09-27 18:34:54
我是.NET和C#领域的新手。我正在为我正在处理的网站创建一个注册页面。我在注册正在创建的网站时不断收到错误。输入我的详细信息时,它不会将我注册到数据库中。我在数据库中创建了一个表(我创建了一个连接字符串(,但我无法注册 - 我收到一个异常,说"错误,请尝试再次注册"(就像我所做的那样(。有人知道我做错了什么吗?!谢谢!
这是我的代码和图像:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
public partial class Registration : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegisConnectionString"].ConnectionString);
con.Open();
string cmdStr = "Select count(*) from Table where Username='" + TextBox1Username.Text + "'";
SqlCommand userExist = new SqlCommand(cmdStr, con);
// int temp = Convert.ToInt32(userExist.ExecuteScalar().ToString());
con.Close();
/* if (temp == 1)
{
Response.Write("username already exists");
} */
}
}
protected void TextBox2_TextChanged(object sender, EventArgs e)
{
}
protected void Submit_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegisConnectionString"].ConnectionStr ing);
con.Open();
string insCmd = "Insert into Table (Username, Password, EmailAddress,Fullname, City) values (@Username, @Password, @EmailAddress, @Fullname, @City)";
SqlCommand insertUser = new SqlCommand(insCmd, con);
insertUser.Parameters.AddWithValue("@Username", TextBox1Username.Text);
insertUser.Parameters.AddWithValue("@Password", TextBox2Password.Text);
insertUser.Parameters.AddWithValue("@EmailAddress", TextBox4Email.Text);
insertUser.Parameters.AddWithValue("@Password", TextBox2Password.Text);
insertUser.Parameters.AddWithValue("@City", TextBox6City.Text);
try
{
insertUser.ExecuteNonQuery();
con.Close();
Response.Redirect("Login.aspx");
}
catch (Exception er)
{
Response.Write("error,please try registering again");
}
}
}
图像:
[URL=http://imageshack.us/photo/my-images/4/os6b.jpg/][IMG=http://img4.imageshack.us/img4/2526/os6b.jpg][/IMG][/URL]
上传者 [URL=http://imageshack.us]ImageShack.us[/URL]
参数
中缺少全名,并且您有两次密码.fix 并再次运行它。
此外,在您的 catch 块中.. 您应该使用异常消息来调试或记录可以清楚地看到错误的地方。 您现在拥有它的方式会给出您键入的错误。 不是实际的消息。
这是他们讨论SQLException的链接。 抓住这一点可能是个好主意。
SqlException 捕获和处理
在插入查询中传递两次密码参数。第二个代替@fullname
参数。
这将导致插入命令失败,因为您没有提供查询所需的@fullname
参数。
SqlCommand insertUser = new SqlCommand(insCmd, con);
insertUser.Parameters.AddWithValue("@Username", TextBox1Username.Text);
insertUser.Parameters.AddWithValue("@Password", TextBox2Password.Text);
insertUser.Parameters.AddWithValue("@EmailAddress", TextBox4Email.Text);
insertUser.Parameters.AddWithValue("@FullName", TextBox???????.Text); //<- Get from the correct textbox
insertUser.Parameters.AddWithValue("@City", TextBox6City.Text);
如果您在捕获中将er.Message
添加到响应中,您可能会自己发现此问题
try
{
insertUser.ExecuteNonQuery();
con.Close();
Response.Redirect("Login.aspx");
}
catch (Exception er)
{
Response.Write("error: " + er.Message + " ,please try registering again");
}