1

经过不眠之夜并在stackoverflow上运行后,我找不到可以解决我的问题的方法(函数)。

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

这是我的代码:

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。

4

2 回答 2

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());
}
于 2013-10-05T10:43:50.703 回答
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());
}
于 2013-10-05T10:43:37.513 回答