4

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

4

2 回答 2

9
string myScalarQuery = "select count(*) from TableName";

SqlCommand myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand.Connection.Open();
int count = (int) myCommand.ExecuteScalar();
myConnection.Close();

根据下面的评论可能优化查询:Select Top 1 * FROM TableName

于 2012-05-26T00:15:07.890 回答
7

最便宜的方法是使用 SqlDataReader 的HasRows属性
UPDATE:当然,最有效的 SELECT 查询将类似于“Select Top 1 1 FROM TableName”,它甚至不需要提取任何列数据。

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
        if (rdr.HasRows)
            ...
    }
}
于 2012-05-26T00:32:39.013 回答