如何在mysql中获取表中的行数

时间:2013-10-05 10:41:09

标签: c# mysql

在不眠之夜并在堆栈溢出之后运行时,我找不到可以解决我的问题的方法(函数)。

我写的内容对服务器来说非常困难。有没有更聪明的方法来解决这个问题?

这是我的代码:

public static int GetIndexLong(string TblName)
{
    int rowsNbr = 0;
    using(MySqlConnection conn = new MySqlConnection(PublicVariables.cs))
    {
        using(MySqlCommand cmd = new MySqlCommand("SELECT * FROM " + TblName, conn))
        {
            conn.Open();
            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    ++rowsNbr;
                }
            }
            return rowsNbr;
        }
    }
}

它完成了这项工作,但我知道这不是好方法。

在.NET 4.0上使用C#Express 2008。

2 个答案:

答案 0 :(得分:3)

你在找数:

SELECT COUNT(*) FROM TableName

在你的代码中它就像:

using(MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn))

或者如果您想要返回行数,您可能也可以尝试: -

using (MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn))
{
    conn.Open();
    return Convert.ToInt32(cmd.ExecuteScalar());
}

答案 1 :(得分:2)

该职位的正确查询是:

SELECT count(*) FROM + TblName

(但这与C#无关。)

您的案例中的C#代码替换将是:

using(MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn))
{
    conn.Open();
    return int.Parse(cmd.ExecuteScalar().ToString());
}