在不眠之夜并在堆栈溢出之后运行时,我找不到可以解决我的问题的方法(函数)。
我写的内容对服务器来说非常困难。有没有更聪明的方法来解决这个问题?
这是我的代码:
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。
答案 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());
}