为什么我在 mysql 中的计数命令返回错误的值 -1?



我正在使用gcloud mysql并使用c#插入值和东西。 我试图获取表 Categories_tbl 中的记录数量。我的代码是: 但是执行 x 后等于 -1 这是错误的。会是什么?

MySqlCommand count_categories = new MySqlCommand(
"SELECT COUNT(CategoryId) FROM Categories_tbl;", 
connection);
x = count_categories.ExecuteNonQuery();

嗯,

count_categories.ExecuteNonQuery();

返回受影响的记录数;您不调用insertupdatedelete因此您有-1。取而代之的是

x = count_categories.ExecuteScalar();

执行查询并返回单个结果。另一种(更罗嗦的(可能性

using (var reader = count_categories.ExecuteReader()) {
if (reader.Read())
x = Convert.ToInt32(reader[0]); // if you want int as a result
else {
// cursor is empty
}
} 

编辑:如果您想读取多条记录,则可以使用它,例如

List<Category> list = new List<Category>(); 
using (var reader = count_categories.ExecuteReader()) {
while (reader.Read()) {
//TODO: put the right syntax here
Category category = new Category() {
Name = Convert.ToString(reader["Name"]),
};  
list.Add(category);
}
}

这不是"非查询",这是一个查询,你想要结果:

x = count_categories.ExecuteScalar();

由于我不知道您的x是什么类型,因此您可能需要将其转换为正确的类型。

相关内容

  • 没有找到相关文章

最新更新