我正在使用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();
返回受影响的记录数;您不调用insert
、update
、delete
因此您有-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
是什么类型,因此您可能需要将其转换为正确的类型。