使用C#获取MySQL记录数

she*_* me 3 c# mysql mysql-connector

我想知道如何使用C#获取查询的记录计数.

这是我使用的代码..

    MySqlDataReader recordset = null;
    query = new MySqlCommand("SELECT * FROM test ORDER BY type_ID ASC", this.conn);
    recordset = query.ExecuteReader();


    while (recordset.Read())
    {
        result.Add(recordset["type_ID"].ToString());

    }
    return result;
Run Code Online (Sandbox Code Playgroud)

Tre*_*orm 8

我正在使用a SELECT COUNT(*)并期望int将其退回.您可能需要这样才能获得可用的值:

mysqlint = int.Parse(query.ExecuteScalar().ToString());
Run Code Online (Sandbox Code Playgroud)


Der*_*k W 6

有几件事...

您将使用的 SQL 语句是:

SELECT COUNT(*) FROM 测试

但是,当使用MySQL Connector/Net通过 C# 连接到 MySQL 时,在处理查询结果时需要注意一些问题。

例如,正如在这个问题中所引用的那样,并且在Microsoft Connect 上 int.Parse("0")等效地称为Int32.Parse("0")可以FormatException在某些机器上抛出一个。

我发现它可以Convert.ToInt32很好地处理这种情况。

所以你的代码将是这样的:

using (var conn = new MySqlConnection(cs))
{
    conn.Open();
    using (var cmd = new MySqlCommand("SELECT COUNT(*) FROM test", conn))
    {
         int count = Convert.ToInt32(cmd.ExecuteScalar());
         return count;
    }
}
Run Code Online (Sandbox Code Playgroud)

请记住使用using 语句以确保正确处理 MySQL 对象。