";标准表达式“”中的数据类型不匹配;在C#中

本文关键字:数据类型 不匹配 quot 标准 表达式 | 更新日期: 2023-09-27 18:21:24

我在字符串变量中有一个数字"userID"。我正在将其转换为int,以从数据库中获取"用户名"answers"角色",该数据库有一个具有AutoNumber数据类型的"user_ID"字段。转换后的userID被分配给变量"value"。但我在行中得到了"标准表达式中的数据类型不匹配"

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

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

";标准表达式“”中的数据类型不匹配;在C#中

您在SQL查询中使用了字符串文字。EG 'value' '表示数据类型为字符串。删除它,你就不会有任何问题。

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

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