";标准表达式“”中的数据类型不匹配;在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;
}
}
这个错误的根本原因是什么?
您在SQL查询中使用了字符串文字。EG 'value'
'
表示数据类型为字符串。删除它,你就不会有任何问题。
在您的SQL语句中,您将user_ID
与字符串文本(用引号括起来)进行比较。
您想将其与数字进行比较。