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

ief*_*fpw 4 c# asp.net ado.net

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

TGH*_*TGH 7

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

SqlCommand myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand.Connection.Open();
int count = (int) myCommand.ExecuteScalar();
myConnection.Close();
Run Code Online (Sandbox Code Playgroud)

根据以下注释可能优化查询:选择Top 1*FROM TableName


det*_*ale 6

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

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
        if (rdr.HasRows)
            ...
    }
}
Run Code Online (Sandbox Code Playgroud)