从SQL查询中捕获计数

Seb*_*jan 46 c# sql sql-server

C#(.cs文件)中从SQL命令获取计数的最简单方法是什么

SELECT COUNT(*) FROM table_name
Run Code Online (Sandbox Code Playgroud)

int变量?

m.e*_*son 99

使用SqlCommand.ExecuteScalar()并将其投射到int:

cmd.CommandText = "SELECT COUNT(*) FROM table_name";
Int32 count = (Int32) cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

  • @SearchForKnowledge尝试使用Convert.ToInt32(cmd.ExecuteScalar())而不是强制转换. (4认同)
  • @SearchForKnowledge检查返回的值是否可以转换为Int32的值.你很有可能试图转换一个单词. (2认同)

Ram*_*eef 20

SqlConnection conn = new SqlConnection("ConnectionString");
conn.Open();
SqlCommand comm = new SqlCommand("SELECT COUNT(*) FROM table_name", conn);
Int32 count = (Int32) comm .ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

  • 这和我的答案不一样吗? (3认同)

小智 9

您将获得转换错误:

cmd.CommandText = "SELECT COUNT(*) FROM table_name";
Int32 count = (Int32) cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

改为使用:

string stm = "SELECT COUNT(*) FROM table_name WHERE id="+id+";";
MySqlCommand cmd = new MySqlCommand(stm, conn);
Int32 count = Convert.ToInt32(cmd.ExecuteScalar());
if(count > 0){
    found = true; 
} else {
    found = false; 
}
Run Code Online (Sandbox Code Playgroud)