0

我在字符串变量中有一个数字“userID”。我将其转换为int从数据库中获取“用户名”和“角色”,该数据库具有“user_ID”字段和自动编号数据类型。转换后的用户 ID 分配给变量“值”。但是我在以下行中收到“标准表达式中的数据类型不匹配”:

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;
    }
}

这个错误的根本原因是什么?

4

2 回答 2

1

您在 SQL 查询中使用字符串文字。EG'value' '表示数据类型是字符串。删除它,您应该没有任何问题。

于 2013-07-07T02:52:45.763 回答
0

在您的 SQL 语句中,您将user_ID字符串文字(在引号中)进行比较。

您想将其与数字进行比较。

于 2013-07-07T02:51:50.993 回答