4

如何从 C# 检查我的表是否为空?

我有类似的东西:

public MySqlConnection con;
public MySqlCommand cmd;

 con = new MySqlConnection(GetConnectionString());
 con.Open();
 cmd = new MySqlCommand("SELECT * FROM data;", con);

或者我不需要调用 SELECT 语句?

4

4 回答 4

5

您可以COUNT(*)不使用WHEREclose 并查看结果中是否存在多少行。

或者你可以做一个SELECT (id) FROM tablenamewith noWHERE子句,如果没有返回行,那么表是空的。

于 2012-05-27T17:14:37.260 回答
5

我会给你一个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();
        }
   }
于 2015-07-06T13:39:58.293 回答
0

如果“数据”可能是一个大表,你会更好(其中 pkdata 是你的主键字段)

SELECT COUNT(*) FROM data WHERE pkdata = (SELECT pkdata FROM data LIMIT 1);

无论您在“数据”中有 0 行还是数百万行,这都会非常快速地运行。使用没有 WHERE 或 ORDER BY 的 SELECT 意味着它只会拉出可用的第一行,LIMIT 1 会阻止它超过 1。如果你的程序在六个月前运行得非常快,但现在像狗一样运行,那么可能需要寻找一些东西糖浆!

于 2020-05-14T10:44:21.250 回答
-1
SELECT COUNT(*) 
FROM table 
WHERE `col_name` IS NOT NULL
于 2012-05-27T17:18:58.473 回答