1
在C#ASP.net中使用3層體系結構爲什麼我的註冊函數在ASP.NET中不起作用?
最初我從c-sharp頁面檢索所有asp.net屬性。
protected void Register_Click(object sender, EventArgs e)
{
String fname = this.firstname.Text;
String lname = this.lastname.Text;
String username = this.username.Text;
String address = this.address.Text;
String gender = this.gender.Text;
String age = this.age.Text;
String pwd = this.password.Text;
String cpwd = this.cpassword.Text;
String secQ = this.secQ.Text;
String secA = this.secA.Text;
UserOp userop = new UserOp();
if (userop.signup(fname, lname, username, address, gender, age, pwd, secQ, secA))
{
Response.Redirect("home.aspx");
}
else
{
Response.Redirect("index.aspx");
}
}
和第二層將包括以下方法
public bool signup(String fname,String lname,String username,String address,String gender,String age,
String password, String secQ, String secA)
{
user = new User(fname,lname,username,address,gender,age,password,secQ,secA);
userdata.addUser(user);
return true;
}
的最後數據訪問層將包括這增加了用戶數據庫的SQL部分。
private SqlConnection con;
private SqlDataAdapter sda;
private SqlCommand command;
private SqlDataReader sdr;
public UserData()
{
con = new SqlConnection("Data Source=WIN-5KGBCLFK1FJ;Initial Catalog=thedb;Integrated Security=True");
sda = new SqlDataAdapter();
}
public Boolean addUser(User user)
{
try
{
// con.Open();
sda.InsertCommand = new SqlCommand("INSERT INTO tbluser VALUES ('" + user.Fname + "','" + user.Lname + "','" + user.Username + "','" + user.Age + "','" + user.Sex + "','" + user.Country + "','" + user.Password + "','" + user.SecQ + "','" + user.SecA + "')", con);
con.Open();
sda.InsertCommand.ExecuteNonQuery();
con.Close();
return true;
}
catch (Exception ex)
{
throw ex;
}
}
認爲這是SQL部分錯誤,我將其更改爲以下代碼,但發生同樣的異常。
sda.InsertCommand = new SqlCommand ("INSERT INTO tbluser (fName,lName,username,age,sex,country, password, secQ, secA) VALUES (@fname,@lname,@username,@age,@sex,@country,@password,@secQ,@secA)",con);
sda.InsertCommand.Parameters.Add("@fname", SqlDbType.VarChar).Value = user.Fname;
sda.InsertCommand.Parameters.Add("@lname", SqlDbType.VarChar).Value = user.Lname;
sda.InsertCommand.Parameters.Add("@username", SqlDbType.VarChar).Value = user.Username;
sda.InsertCommand.Parameters.Add("@age", SqlDbType.VarChar).Value = user.Age;
sda.InsertCommand.Parameters.Add("@sex", SqlDbType.VarChar).Value = user.Sex;
sda.InsertCommand.Parameters.Add("@country", SqlDbType.VarChar).Value = user.Country;
sda.InsertCommand.Parameters.Add("@password", SqlDbType.VarChar).Value = user.Password;
sda.InsertCommand.Parameters.Add("@secQ", SqlDbType.VarChar).Value = user.SecQ;
sda.InsertCommand.Parameters.Add("@secA", SqlDbType.VarChar).Value = user.SecA;
con.Open();
sda.InsertCommand.ExecuteNonQuery();
con.Close();
return true;
InvalidOperationException異常Unhanded由用戶代碼 「System.InvalidOperationException」類型的異常出現在DataAccessLayer.dll但在用戶代碼中沒有處理
的用戶記錄似乎不正在添加到數據庫表中。