如何从 C# 检查我的表是否为空?
我有类似的东西:
public MySqlConnection con;
public MySqlCommand cmd;
con = new MySqlConnection(GetConnectionString());
con.Open();
cmd = new MySqlCommand("SELECT * FROM data;", con);
或者我不需要调用 SELECT 语句?
您可以COUNT(*)
不使用WHERE
close 并查看结果中是否存在多少行。
或者你可以做一个SELECT (id) FROM tablename
with noWHERE
子句,如果没有返回行,那么表是空的。
我会给你一个C#的例子祝你好运
public bool checkEmptyTable(){
try
{
MySql.Data.MySqlClient.MySqlCommand com = new MySql.Data.MySqlClient.MySqlCommand();
conn = new MySql.Data.MySqlClient.MySqlConnection("YOUR CONNECTION");
com.Connection = conn;
com.CommandText = "SELECT COUNT(*) from data";
int result = int.Parse(com.ExecuteScalar().ToString());
return result == 0; // if result equals zero, then the table is empty
}
finally
{
conn.Close();
}
}
如果“数据”可能是一个大表,你会更好(其中 pkdata 是你的主键字段)
SELECT COUNT(*) FROM data WHERE pkdata = (SELECT pkdata FROM data LIMIT 1);
无论您在“数据”中有 0 行还是数百万行,这都会非常快速地运行。使用没有 WHERE 或 ORDER BY 的 SELECT 意味着它只会拉出可用的第一行,LIMIT 1 会阻止它超过 1。如果你的程序在六个月前运行得非常快,但现在像狗一样运行,那么可能需要寻找一些东西糖浆!
SELECT COUNT(*)
FROM table
WHERE `col_name` IS NOT NULL