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

标签 c# mysql xamarin

我正在使用 Xamarin 中的 MySQL 库连接到我的数据库。我正在调用 ExecuteScalar() 命令来检查我的数据库中是否存在用户。

我将 ExecuteScalar() 的返回转换为 Int32 并存储在名为 userCount 的 Int32 变量中,但 Visual Studio 抛出一个 cast is not valid 当我尝试调用 (int32)checkUser.ExecuteScalar();

时出错

这是建议在 documentation 中完成的方式,所以我很困惑。这是我的代码:

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
}

最佳答案

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

您可能正在尝试将 null 转换为 int32

关于C#使用MYSQL ExecuteScalar()类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794585/

相关文章:

php - 查询查找列的两个连续值

php - 如何显示刚刚在mysql中创建的增量值

c# - Xamarin.ios - 计时器在时间后不执行操作

c# - 如何从循环中删除多余的 AND

c# - 系统找不到 Windows Server 2012 中指定的文件

c# - 检测两条重合线段的重合子集

xamarin - 如何在 ScrollView xamarin表单中隐藏滚动条?

c# - 在 C# 中计算素数的最快方法?

Mysql - 逐行累计统计总数

c# - Xamarin 中的 NUnit 异步测试不起作用