C# SQL(如果查询返回任何行计数)

本文关键字:任何行 返回 查询 SQL 如果 | 更新日期: 2023-09-27 18:35:19

使用查询查找数据是否返回的最简单和最有效的方法是什么?我正在使用像sqlAdapter.Fill(_table1)这样的DataTable,然后执行_table1.Rows.Count以查看数据表是否有任何行。C# 中是否有任何类和函数,如果有任何行,它只会给我。我不需要行的数据。只是计数是我需要的。我正在对非常大的数据集运行此查询,因此我不想用所有行信息填充数据表。

C# SQL(如果查询返回任何行计数)

string myScalarQuery = "select count(*) from TableName";
SqlCommand myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand.Connection.Open();
int count = (int) myCommand.ExecuteScalar();
myConnection.Close();

根据下面的注释对查询进行可能的优化:选择前 1 个 * 从表名

最便宜的方法是使用 SqlDataReader 的 HasRows 属性
更新:当然,最有效的 SELECT 查询就像"从 TableName 中选择前 1 名 1 U"一样,它甚至不需要拉取任何列数据。

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
        if (rdr.HasRows)
            ...
    }
}