从 ASP.NET 中的 SQL Server 获取汇总/排序的数据
Posted
技术标签:
【中文标题】从 ASP.NET 中的 SQL Server 获取汇总/排序的数据【英文标题】:Get summarized/sorted data from SQL Server in ASP.NET 【发布时间】:2018-08-01 17:34:58 【问题描述】:下面是我保存学生出勤率的 sql 表
我正在尝试创建一个汇总的出勤报告,如下所示:
所有学生的出勤情况总结:
I班学生人数:1人 II班学生人数:1人 III 班学生人数:0但我并没有找到正确的方法来做到这一点。下面是我试图用来实现此目的的示例代码:
public void GetPresentCount()
using (SqlConnection con = new SqlConnection(constring))
con.Open();
using (SqlCommand cmd = new SqlCommand("select count(*) as 'TotalPresent' from stud_att where att='Present' and a_date='"+ systemdate +"'", con))
using (SqlDataReader dr = cmd.ExecuteReader())
if (dr.Read())
totstuds.InnerText = dr["TotalCount"].ToString();
else
totstuds.InnerText = "0";
con.Close();
public void GetAbsentCount()
using (SqlConnection con = new SqlConnection(constring))
con.Open();
using (SqlCommand cmd = new SqlCommand("select count(*) as 'TotalPresent' from stud_att where att='Present' and a_date='" + systemdate + "'", con))
using (SqlDataReader dr = cmd.ExecuteReader())
if (dr.Read())
totstuds.InnerText = dr["TotalCount"].ToString();
else
totstuds.InnerText = "0";
con.Close();
但我知道这不是正确的方法。
【问题讨论】:
【参考方案1】:我认为您只需要条件聚合:
select class,
sum(case when att = 'Present' then 1 else 0 end) as attendance
from stud_att
where a_date = ?
group by class
order by class;
?
是传入日期的参数占位符。不要使用常量值处理 SQL 查询;将它们作为参数传入。
【讨论】:
以上是关于从 ASP.NET 中的 SQL Server 获取汇总/排序的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 从 ASP.NET 中的 SQL Server 数据库中检索和显示 GridView 中的值
从 ASP.NET Core 2.2 更新 SQL Server 中的上下文
如何从 ASP.NET Core Web API 中的 SQL Server 存储过程中获取返回值
如何使用json从sql server ASP.net中检索数据