C#使用MYSQL ExecuteScalar()类型错误

Bar*_*ers 5 c# mysql xamarin

我正在使用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)

Jas*_*don 3

您链接到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)

可能您正在尝试投射nullint32