【问题标题】:How can I check if something exist in MySQL database with int, or is there any alternatives?如何使用 int 检查 MySQL 数据库中是否存在某些内容,或者是否有任何替代方法?
【发布时间】:2019-08-21 04:20:18
【问题描述】:

当我尝试登录时,我正在尝试检查用户的 HWID 是否已经存在于我的 mysql 数据库中的“用户”表中。如果确实存在,请再次检查。但是我收到一个错误,称为“您的 SQL 语法有错误;请检查手册是否与您的 MySQL 服务器版本相对应……”等等。语法似乎没有任何错误。我认为问题将在 int 部分。我不确定,所以我需要你的帮助!

我试图用谷歌搜索这个并在 stackoverflow 上搜索(这里)。我还没有找到我的“实际”问题的答案。我尝试使用 boolean 而不是 int。

MySqlCommand hwid = con.CreateCommand();
                hwid.CommandType = CommandType.Text;
                hwid.CommandText = "SELECT COUNT * FROM users where hwid='"+leet+"' AND username='"+textBox1.Text+"'";
                hwid.Parameters.AddWithValue("hwid", leet);
                hwid.Parameters.AddWithValue("username", textBox1.Text);
                int hwidCheck1 = hwid.ExecuteNonQuery();
                if ((int)hwidCheck1 > 0)

我希望它检查 hwid 是否在数据库中并继续下一次检查。

【问题讨论】:

  • SELECT COUNT(*) FROM .... 错字或简单错误。结束
  • 如错误所示,您的查询字符串不正确。您是否尝试在 MySQL 数据库中运行此查询?

标签: c# mysql .net mysql.data


【解决方案1】:

您的 sql 中缺少 (*)。

应该是这样的:

SELECT COUNT(*) FROM users where hwid='whatever' AND username='someuser'

这正是调试器告诉你的,SQL 语法有问题。

我看到的另一件事是,要检查计数结果,您需要稍微更改逻辑。

从此:

int hwidCheck1 = hwid.ExecuteNonQuery();
if ((int) hwidCheck1 > 0)

到这里:

int hwidCheck1 = int.Parse(hwid.ExecuteScalar().ToString());
if (hwidCheck1 > 0)

【讨论】:

  • 感谢我已经尝试使用“SELECT COUNT (*)”我现在删除了空间并且它正在工作。祝你有美好的一天!
猜你喜欢
  • 2012-03-22
  • 2021-08-11
  • 1970-01-01
  • 2019-07-05
  • 2012-08-22
  • 2011-10-11
  • 2020-01-31
  • 2010-10-24
相关资源
最近更新 更多