我在C#中有一个连接到MySQL数据库的WinForms项目.我正在尝试计算结果中的行数,我不能使用RecordsAffected,因为此属性在读取完成后只有正确的值,您可以从下面的代码中看到我之前需要它.有什么想法如何做到这一点?
string sql = "SELECT * FROM Tigers WHERE Link='" + link + "'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr.RecordsAffected == 0)
{
//can't find in db
}
else
{
//found at least 1 result
}
解决方法:
您可以改用HasRows:
string sql = "SELECT * FROM Tigers WHERE Link='" + link + "'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
if(rdr.HasRows){
while (rdr.Read())
{
//do stuff here
}
} else {
//nothing found
}
编辑:如果您不需要读取从数据库中检索的数据,只需要您可以使用的计数:
cmd.CommandText = "SELECT COUNT(*) FROM Tigers WHERE Link='" + link + "'";
Int32 count = (Int32) cmd.ExecuteScalar();
标签:c-2,mysql
来源: https://codeday.me/bug/20190723/1514484.html