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