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 に答える