C# 如何统计数据读取器加载的记录
您好,我正在尝试统计当前已发行但尚未归还给学生的所有书籍,并将其查看到datagridview 我试过了C# 如何统计数据读取器加载的记录,c#,winforms,C#,Winforms,您好,我正在尝试统计当前已发行但尚未归还给学生的所有书籍,并将其查看到datagridview 我试过了 public void LoadRecords() { frmAddEditStudent frm = new frmAddEditStudent(this); int i = 0; gunaDataGridView1.Rows.Clear(); cn.Open(); cm = new SqlComman
public void LoadRecords()
{
frmAddEditStudent frm = new frmAddEditStudent(this);
int i = 0;
gunaDataGridView1.Rows.Clear();
cn.Open();
cm = new SqlCommand("SELECT * FROM tblStudent WHERE lastName LIKE '" + txtSearch.Text + "%'", cn);
SqlCommand booksOnHand = new SqlCommand("SELECT COUNT(*) FROM tblBorrowedBook WHERE status = 'Not Retuned' AND studentID = '" + frm.txtStudNo.Text + "'", cn);
dr = cm.ExecuteReader();
while (dr.Read())
{
i += 1;
gunaDataGridView1.Rows.Add(i, dr["studentID"].ToString(), dr["studentNum"].ToString(), dr["lastName"].ToString(), dr["firstName"].ToString(), dr["course"].ToString(), dr["year"].ToString(), dr["gender"].ToString(), dr["contact"].ToString(), dr["email"].ToString(), dr["address"].ToString(), dr["image"], booksOnHand);
}
dr.Close();
cn.Close();
}
以及输出
我似乎不知道如何以正确的方式进行操作。最简单的方法是使用子查询创建查询 选择s.*, 选择计数* 来自TBLBorrowdbook b 其中b.status='notretuned'和b.studentID=s.studentID作为BookCount 来自TBL学生 姓氏如“abc%”的位置
这将使您获得所有字段和计数Lear以使用参数化查询。您的程序对SQL注入开放。此外,研究数据绑定-将数据转换为字符串并将其插入控件是显示DB数据的一种繁琐而低效的方法。但首先是参数化查询,因为这在网络中从来都不是这样做的。您遇到了什么问题?dr[图像]是否存在问题?db中该列的类型是什么?Pro提示:您的问题不是关于计算图书馆中的书籍,而是有条件地计算数据库中的行数。我之所以做出这种区分,是因为世界上没有一个未来的用户会对你在图书馆里数书有异议,也没有使用那种语言的stackoverflow。您有编程问题,而不是库problem@kemchan:如果您将搜索引擎与类似C参数化查询的内容一起使用,您将在这方面找到很多信息。一个例子:非常感谢,这解决了我的问题。我不知道有一种叫做子查询的东西,因为我对数据库和编程非常陌生。我将练习如何使用其他人所说的参数。多谢各位