C# 如何从c中查找select查询影响的行数

C# 如何从c中查找select查询影响的行数,c#,sql-server,C#,Sql Server,我想知道当我从C启动select查询而不将数据插入dataset或datatable时,受影响的行数 string constr = ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString; //get connection string Web.config SqlConnection con = new SqlConnection(constr); //define Select Qu

我想知道当我从C启动select查询而不将数据插入dataset或datatable时,受影响的行数

string constr = ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString; //get connection string Web.config

SqlConnection con = new SqlConnection(constr);

//define Select Query
SqlCommand slct = new SqlCommand("select * From [dbo].[userdetail] where 1=1", con);
int noRows;

//open connection and execute query
con.Open();
noRows = slct.ExecuteNonQuery();
con.Close();

//define Select Query
SqlCommand select = new SqlCommand("select * From [dbo].[userdetail] where 1=0", con);

//open connection and execute query
con.Open();
noRows = select.ExecuteNonQuery();
con.Close();

首先,对于当前查询,请使用ExecuteReader,并在阅读下面的循环时保留一个计数器

int count = 0;

while(rdr.Read())
{
  count++;
}
否则,使用下面这样的标量查询并使用ExecuteScalar函数


在这种情况下,您需要使用SELECT COUNT*。。。。。然后使用select.ExecuteScalar获取行数如果从数据库检索数据集,则可以对检索到的数据集中的行数进行计数,需要定义受影响的行数。因为如果你的意思是选择,那么它意味着像上面评论的那样计算结果。
select count(*) From [dbo].[userdetail] 

SqlCommand cmd = new SqlCommand("select count(*) From [dbo].[userdetail]", con);

// open connection and execute query
con.Open();
int noRows = (int)cmd.ExecuteScalar();