2013-04-17 4 views
0

내가 asp.net에서 암호 변경 화면을 desiging하고, 4 개 필드를 사용자 ID, 를 OLDpassword, NEWPASSWORD 확인 암호를 가진 C#을, MS 액세스 데이터베이스 메신저암호 변경, C#을, MS 액세스 데이터베이스

지금 IM 내 코드 내가 업데이트 한 카운트가 0을 반환 결과를 얻기하지

 try 

     { 

     OleDbConnection myCon = new OleDbConnection(ConfigurationManager.ConnectionStrings["vhgroupconnection"] 
     .ConnectionString); 
     myCon.Open(); 

     string userid = txtuserid.Text; 
     string oldpass = txtoldpass.Text; 
     string newPass = txtnewpass.Text; 
     string conPass = txtconfirmpass.Text; 

     string q = "select user_id,passwd from register where user_id = @userid and  passwd = @oldpass"; 

     OleDbCommand cmd = new OleDbCommand(q, myCon); 



     cmd.Parameters.AddWithValue("@userid", txtuserid.Text); 

     cmd.Parameters.AddWithValue("@oldpass", txtoldpass.Text); 

     OleDbDataReader re = cmd.ExecuteReader(); 
     re.Read(); 

     if (re["user_id"].ToString() != String.Empty && re["passwd"].ToString() != String.Empty) 
     { 
      if (newPass.Trim() != conPass.Trim()) 
      { 
       lblmsg.Text = "New Password and old password does not match"; 

      } 
      else 
      { 
       q = "UPDATE register SET passwd = @newPass WHERE user_id [email protected]"; 
       cmd = new OleDbCommand(q, myCon); 
       cmd.Parameters.AddWithValue("@userid", txtuserid.Text); 
       cmd.Parameters.AddWithValue("@newPasss", txtnewpass.Text); 



       int count = cmd.ExecuteNonQuery(); 

       if (count > 0) 
       { 
        lblmsg.Text = "Password changed successfully"; 
       } 
       else 
       { 
        lblmsg.Text = "password not changed"; 
       } 
      } 
     } 
    } 
    catch(Exception ex) 
    { 
     throw ex; 
    } 

이 PLZ 해결하는 데 도움이 다음과 같이 내 코드는 오류

답변

2

이 개체를 직접 인스턴스화 할 수 없으므로 No constructor is defined 오류가 발생합니다. MSDN에 언급 한 바와 같이 :

이 방법 OleDbDataReader를 만들려면, 직접 생성자를 사용하는 대신 OleDbCommand 개체의 ExecuteReader 메서드 를 호출해야합니다.

기본적으로, 당신은 당신의 쿼리 연결을 생성하고 지정 후 다음과 같은 것을 할 거라고 :

OleDbDataReader re = cmd.ExecuteReader(); 
+0

내가 그것을 시도하지만 난 코드를 디버깅 할 때이 예와 같은 예외를 보였다을 { "어떤 값이 주어지지 "} System.Exception {System.Data.OleDb.OleDbException} – dev

+0

대답은 내가 내 업데이트 쿼리를 다음과 같이 변경했습니다. q ="UPDATE 레지스터 SET passwd = ' "+ txtnewpass.Text +"'WHERE user_id = ' "+ txtuserid.Text +"' "; 그것은 당신의 도움에 성공적으로 감사했습니다. – dev

관련 문제