簡體   English   中英

C#SQL如果查詢返回任何行計數

[英]C# SQL if query returns any rows count

查找數據是否使用查詢返回的最簡單,最有效的方法是什么? 我正在使用DataTablesqlAdapter.Fill(_table1) ,然后執行_table1.Rows.Count以查看數據表是否有任何行。 如果有任何行,C#中是否有任何類和函數可以提供給我。 我不需要行的數據。 只是計數是我需要的。 我正在針對非常大的數據集運行此查詢,因此我不想用所有行信息填充數據表。

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

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

根據以下注釋可能優化查詢:選擇Top 1 * FROM TableName

最便宜的方法是使用SqlDataReader的HasRows屬性
更新 :當然,最有效的SELECT查詢將類似於“選擇Top 1 1 FROM TableName”,甚至不需要提取任何列數據。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM