我正在使用Xamarin中的MySQL库连接到我的数据库.我正在调用ExecuteScalar()命令来检查我的数据库中是否存在用户.
我将返回ExecuteScalar() 转换为Int32并存储在一个名为Int32的变量中userCount,cast is not valid但当我尝试调用时,Visual Studio会抛出错误(int32)checkUser.ExecuteScalar();
这是建议在文档中完成的方式,所以我很困惑.这是我的代码:
using MySql.Data.MySqlClient;
using System.Data;
MySqlCommand checkUser = new MySqlCommand("SELECT COUNT(*) FROM <MyCoolDatabase> WHERE Userid = '" + username + "'", connection);
Int32 userCount = (Int32)checkUser.ExecuteScalar(); //error is here
if(userCount >0)
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
您链接到System.Data.SqlClient但未链接到MySQL.Data.MySqlClient
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html
那里有一个例子 -
object result = cmd.ExecuteScalar();
if (result != null)
{
int r = Convert.ToInt32(result);
Console.WriteLine("Number of countries in the world database is: " + r);
}
Run Code Online (Sandbox Code Playgroud)
可能您正在尝试投射null到int32