2013-07-07 84 views
0

我在字符串變量中有一個數字「userID」。我將它轉換爲int以從數據庫中獲取具有AutoNumber數據類型的「user_ID」字段的「用戶名」和「角色」。轉換後的用戶ID分配給變量「值」。但我在該行獲得「標準表達式中數據類型不匹配」:「標準表達式中的數據類型不匹配」在C#中

OleDbDataReader roleReader = command.ExecuteReader(); 

下面是完整的代碼

class HomeClass 
{ 
    string userID; 
    string role; 
    string username; 

    public HomeClass(string myUserID) 
    { 
     userID = myUserID; 
    } 

    public string checkRole() 
    { 
     int value; 
     value = Int32.Parse(userID); 
     string query = "SELECT role FROM userAccounts WHERE user_ID = '" + value + "'"; 
     ConnectDatabaseString myConnectionString = new ConnectDatabaseString(); 
     OleDbConnection connection = new OleDbConnection(); 
     connection.ConnectionString = myConnectionString.connect(); 
     connection.Open(); 

     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 
     command.CommandText = query; 
     OleDbDataReader roleReader = command.ExecuteReader(); 
     roleReader.Read(); 
     role = roleReader["roles"].ToString(); 
     return role; 
    } 

    public string getUsernameToBeShown() 
    { 
     int value; 
     value = Int32.Parse(userID); 
     string query = "SELECT username FROM userAccounts WHERE user_ID = '" + value + "'"; 
     ConnectDatabaseString myConnectionString = new ConnectDatabaseString(); 
     OleDbConnection connection = new OleDbConnection(); 
     connection.ConnectionString = myConnectionString.connect(); 
     connection.Open(); 

     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 
     command.CommandText = query; 
     OleDbDataReader usernameReader = command.ExecuteReader(); 
     usernameReader.Read(); 
     username = usernameReader["username"].ToString(); 
     return username; 
    } 
} 

這是什麼錯誤的根本原因?

回答

1

您在SQL查詢中使用了字符串文字。 EG 'value''表示數據類型是字符串。刪除這個,你不應該有任何問題。

+0

我試圖刪除'但仍然有相同的錯誤.. –

+0

@AmvinCinco你試圖刪除以及額外的引號? – Justin

+0

是先生...這裏是查詢現在...字符串查詢=「選擇角色從userAccounts WHERE user_ID =」+值;我對另一種方法的查詢做了同樣的事情 –

0

在您的SQL語句中,您正在比較user_ID字符串字面值(用引號引起來)。

你想比較一個數字。

+0

我試過刪除'但仍然有相同的錯誤.. –

+0

明白了。謝謝你先生.. :) –

相關問題