Как считать записи, загруженные считывателем данных - PullRequest
0 голосов
/ 26 марта 2020

Добрый день, в настоящее время я пытаюсь подсчитать все книги, которые в настоящее время выпущены и еще не возвращены учащемуся, и просмотреть их в виде таблицы данных

Я попытался

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();
    }

И вывод enter image description here Кажется, я не знаю, как сделать это правильно.

1 Ответ

1 голос
/ 26 марта 2020

Самый простой способ для вас - создать запрос с подзапросом

SELECT s.*,
       (SELECT COUNT(*) 
        FROM tblBorrowedBook b 
        WHERE b.status = 'Not Retuned' AND b.studentID = s.StudentId) as BookCount
FROM tblStudent s 
WHERE lastName LIKE 'abc%'

. Таким образом вы получите все поля и количество

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...