2014-03-19 1 views
-1
public string checkUsername(string username, string password) 
     { 
      string result = "invalid username/password"; 
      string connectionString = 
       "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~\\myDB\\database.mdb"); 
      string queryString = "SELECT * FROM Table WHERE [username]='" + username + "' AND [password]='" + password + "';"; 

      using (OleDbConnection connection = new OleDbConnection(connectionString)) 
      { 

       connection.Open(); 
       OleDbCommand command = connection.CreateCommand(); 
       command.CommandText = queryString; 

       OleDbDataReader reader = command.ExecuteReader(); 
       try 
       { 
        while (reader.Read()) 
        { 
         result = ""; 
        } 
       } 
       finally 
       { 
        reader.Close(); 
        connection.Close(); 
       } 
      } 
      return result; 
     } 

System.Data.OleDb.OleDbException : 조건 식의 데이터 형식이 일치하지 않습니다. 이 라인 주위 포인팅 : OleDbException : 조건 식의 데이터 형식이 일치하지 않습니다. 어떻게해야합니까?

OleDbDataReader reader = command.ExecuteReader(); 
       try 
       { 
        while (reader.Read()) 

이 원했고 :
cmd.Parameters.AddWithValue("@password", txtBoxPassword.Text); 

하지만 현재 컨텍스트에 존재 나던 "txtBoxPassword"그

.

지금 몇 달 동안 C#을 배웠으나 여전히 지침이 필요합니다.

답변

0

SQL 문을 사용하는 방식에 따라 SQL 삽입이 활발합니다. 그것은 당신이 선택적으로 촬영 한 것처럼 매개 변수화되어야합니다 ... 귀하의 진술로 넣어.

SELECT * FROM Table WHERE [username][email protected] AND [password][email protected] 

그런 다음 매개 변수를 추가했지만 제대로 정리해야합니다. 여기서 username, password의 인바운드 매개 변수는 쿼리의 열 이름이 아닙니다. 이 VALUES를 매개 변수 오브젝트로 설정 중입니다.

cmd.Parameters.AddWithValue ("@parmUserName", username); 
cmd.Parameters.AddWithValue ("@parmPassword", password); 
관련 문제