2013-06-12 2 views
0

테이블 중 하나에서 값을 YES/NO 데이터 유형으로 저장하는 필드가 있습니다.액세스의 YES/NO 데이터 유형 값 확인

다음 쿼리를 사용하여 필드의 값을 확인하려고하지만 아래 그림과 같은 오류가 발생합니다.

public string getAccess(string username) 
     { 
      // Create connection object 
      OleDbConnection oleConn = new OleDbConnection(connString); 
      oleConn.Open(); 
      string sql = "SELECT [admin] FROM [Users] WHERE [username]='" + username + "'"; 
      OleDbCommand cmd = new OleDbCommand(sql, oleConn); 
      string x = (string)cmd.ExecuteScalar(); 


      oleConn.Close(); 


      return x; 
     } 

필드 관리는 YES/NO 타입 데이터 필드이다.

enter image description here

가 어떻게 데이터 유형의 값을 확인할 수 있습니까? 잘못된 경우 검색어로 수정 하시겠습니까?

답변

2

Yes (예)이/Access에서 더 필드는 SQL Server에서 비트 필드 유형에 해당하지 작동, 그래서 당신 대신 당신의 방법에서 부울을 반환해야한다고 생각

public bool isAdmin(string username) 
{ 
    // Create connection object 
    OleDbConnection oleConn = new OleDbConnection(connString); 
    oleConn.Open(); 
    string sql = "SELECT [admin] FROM [Users] WHERE [username]='" + username + "'"; 
    OleDbCommand cmd = new OleDbCommand(sql, oleConn); 
    bool x = (bool)cmd.ExecuteScalar(); 

    oleConn.Close(); 

    return x; 
} 

을 또는 당신이 결정하는 경우 문자열은 반환 값, 다음이 될 : : 문자열의이 같은 것을 시도

public string getAccess(string username) 
{ 
    // Create connection object 
    OleDbConnection oleConn = new OleDbConnection(connString); 
    oleConn.Open(); 
    string sql = "SELECT [admin] FROM [Users] WHERE [username]='" + username + "'"; 
    OleDbCommand cmd = new OleDbCommand(sql, oleConn); 
    bool x = (bool)cmd.ExecuteScalar(); 

    oleConn.Close(); 

    return x ? "Yes" : "No"; 
} 
1

변경된 방법의 유형은 bool로하고 그것은

public bool getAccess(string username) 
     { 
      // Create connection object 
      OleDbConnection oleConn = new OleDbConnection(connString); 
      oleConn.Open(); 
      string sql = "SELECT [admin] FROM [Users] WHERE [username]='" + username + "'"; 
      OleDbCommand cmd = new OleDbCommand(sql, oleConn); 
      bool x = (bool)cmd.ExecuteScalar(); 


      oleConn.Close(); 


      return x; 
     }