2011-11-30 4 views
2

여기에 문제가 있습니다. 예를 들어 사용자 이름으로 "A"를 입력하고 암호로 "A"를 입력 한 경우 아무 것도 일어나지 않습니다. 그러나 다시 들어가서 사용자 이름에 "B"를 입력하고 암호에 "B"를 입력하고 사용자 추가를 클릭하면 이전 항목 "A"& "A"가 표에 추가됩니다. 뒤에있는 것처럼?데이터 입력 (사용자 이름 및 암호)

나는 뭔가 이상한 점을 안다.

public partial class frmManageUsers : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btnAddUser_Click1(object sender, EventArgs e) 
    { 
       //string userName, userPassword; 



     if (txtUserName.Text == "" || txtUserName.Text == null) 
     { 
      lblError.Text = ("User Name may not be empty"); 
      lblError.ForeColor = System.Drawing.Color.Red; 
      return; 
     } 
     // else 

      // userName = (txtUserName.Text); 


     if (txtPassword.Text == "" || txtPassword.Text == null) 
     { 
      lblError.Text = ("Password may not be empty"); 
      lblError.ForeColor = System.Drawing.Color.Red; 
      return; 
     } 
     //else 
      // userPassword = (txtPassword.Text); 

     //using (OleDbConnection conn = new OleDbConnection("PayrollSystem_DBConnectionString")) 
     OleDbConnection conn = 
    new OleDbConnection(ConfigurationManager.ConnectionStrings["PayrollSystem_DBConnectionString"].ConnectionString); 

      { 

       string insert = "Insert INTO tblUserLogin (UserName, UserPassword, SecurityLevel) Values (@UserName, @UserPassword, @SecurityLevel)"; 
       OleDbCommand cmd = new OleDbCommand(insert, conn); 
       cmd.Parameters.Add("@UserName", txtUserName.Text); 
       cmd.Parameters.Add("@UserPassword", txtPassword.Text); 
       cmd.Parameters.Add("@SecurityLevel", drpdwnlstSecurityLevel.SelectedValue); 
       conn.Open(); 
       cmd.ExecuteNonQuery();  
      } 

     Session["UserName"] = txtUserName.Text; 
     Session["Password"] = txtPassword.Text; 
     Session["SecurityLevel"] = drpdwnlstSecurityLevel.SelectedValue; 
     Server.Transfer("frmManageUsers.aspx"); 

     //Server.Transfer("grdUserLogin"); 

    } 
    protected void drpdwnlstSecurityLevel_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 
} 
+0

Server.Transfer를 사용하여 페이지에 처음으로 접근 했습니까? –

답변

5

코드에 conn.Close()가 누락 된 것 같습니다. 테이블에 쓰는 것이 지연 될 수 있습니다. 또한 개체를 적절하게 처리하기 위해 using 문에서 conn을 사용하는 것이 좋습니다.

관련 문제