查找数据是否使用查询返回的最简单,最有效的方法是什么?我正在使用DataTable
sqlAdapter.Fill(_table1)
,然后执行_table1.Rows.Count
来查看数据表是否有任何行。如果有任何行,C#中是否有任何类和函数可以提供给我。我不需要行的数据。只是计数是我需要的。我正在针对非常大的数据集运行此查询,因此我不想用所有行信息填充数据表。
答案 0 :(得分:7)
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
答案 1 :(得分:6)
最便宜的方法是使用SqlDataReader的 HasRows 属性
UPDATE :当然,最有效的SELECT查询将类似于“选择Top 1 1 FROM TableName”,甚至不需要提取任何列数据。
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
if (rdr.HasRows)
...
}
}