Sql server 如何在textbox和datagridview中检索值

Sql server 如何在textbox和datagridview中检索值,sql-server,vb.net,winforms,datagridview,Sql Server,Vb.net,Winforms,Datagridview,我想在文本框中显示记录,并在datagridview中只显示一些记录 存储过程代码 SELECT sh.SchoolYear, sh.Levels,sh.Section, sh.DateEnrolled as LatestDate , SI.StudentID,SI.Surname,SI.FirstName,SI.MiddleName, SI.StudAddress , SI.BirthDay,SI.Gender, SI.Nationality,

我想在
文本框
中显示记录,并在
datagridview
中只显示一些记录

存储过程代码

SELECT sh.SchoolYear,
        sh.Levels,sh.Section, sh.DateEnrolled as LatestDate ,
        SI.StudentID,SI.Surname,SI.FirstName,SI.MiddleName, SI.StudAddress , 
        SI.BirthDay,SI.Gender, SI.Nationality, SI.BirthPlace,
        SI.TelNum,SI.SchoolWhereGraduated , 
        SI.DatesWhenGraduated, SI.SchoolLastAttended,
        SI.SchoolAddress, SI.Note,SI.StudImage,
        PI.Father_FirstName,PI.Father_LastName,
        PI.Father_MI,PI.Father_Occupation, 
        PI.Father_TelNUm, PI.Mother_FirstName, PI.Mother_LastName,
        PI.Mother_MI,PI.Mother_Occupation,PI.Mother_TelNum,
        PI.Contact_FirstName,PI.Contact_LastName,PI.Contact_MI,
        PI.Contact_Mobile,PI.Contact_TelNum,PI.Contact_Address  
        FROM StudentInformation SI 
        JOIN StudentHistory SH  
            ON SI.StudentID = SH.StudentID
        JOIN ParentInformation PI
        ON PI.ParentID = SI.ParentID
        WHERE si.StudentID = @studID
        ORDER BY DateEnrolled DESC
vb.net代码

cmd = New SqlCommand("uspstudents", cn)
            cmd.Parameters.AddWithValue("@studID", frmView.dgv1.SelectedCells(0).Value)
            cmd.CommandType = CommandType.StoredProcedure
            da.SelectCommand = cmd
            da.Fill(dt)
            cboSchoolYear.Text = dt.Rows(0)("SchoolYear").ToString
            cboSection.Text = dt.Rows(0).Item("Section").ToString
            cboGradeLevel.Text = dt.Rows(0).Item("levels").ToString
            dtpEnrollment.Text = dt.Rows(0).Item("LatestDate").ToString
            txtStudLN.Text = dt.Rows(0)("SurName").ToString
            txtStudFN.Text = dt.Rows(0)("FirstName").ToString
            txtStudMN.Text = dt.Rows(0)("MiddleName").ToString
            txtAddress.Text = dt.Rows(0)("StudAddress").ToString
            dtpBirthday.Text = dt.Rows(0)("birthday").ToString
            cboNationality.Text = dt.Rows(0)("Nationality").ToString
            txtPlaceOfBirth.Text = dt.Rows(0)("BirthPlace").ToString
            txtStudentCP.Text = dt.Rows(0)("telnum").ToString
            txtSWG.Text = dt.Rows(0)("schoolWhereGraduated").ToString
            dtpDWG.Text = dt.Rows(0)("datesWhenGraduated").ToString
            txtSLA.Text = dt.Rows(0)("schoolLastAttended").ToString
            txtSchoolAddress.Text = dt.Rows(0)("SchoolAddress").ToString
            txtNote.Text = dt.Rows(0)("Note").ToString
            txtFatherGN.Text = dt.Rows(0)("Father_FirstName").ToString
            txtFatherMI.Text = dt.Rows(0)("Father_MI").ToString
            txtFatherLN.Text = dt.Rows(0)("Father_Lastname").ToString
            txtFatherOccupation.Text = dt.Rows(0)("Father_Occupation").ToString
            txtFatherCP.Text = dt.Rows(0)("Father_telnum").ToString
            txtMotherGN.Text = dt.Rows(0)("Mother_FirstName").ToString
            txtMotherLN.Text = dt.Rows(0)("Mother_LastName").ToString
            txtMotherMI.Text = dt.Rows(0)("Mother_MI").ToString
            txtMotherOccupation.Text = dt.Rows(0)("Mother_Occupation").ToString
            txtMotherCP.Text = dt.Rows(0)("Mother_telNum").ToString
            txtContactGN.Text = dt.Rows(0)("Contact_FirstName").ToString
            txtContactLN.Text = dt.Rows(0)("Contact_LastName").ToString
            txtContactMI.Text = dt.Rows(0)("Contact_MI").ToString
            txtContactAddress.Text = dt.Rows(0)("Contact_Address").ToString
            txtContactCP.Text = dt.Rows(0)("Contact_Mobile").ToString
            txtContactTelNum.Text = dt.Rows(0)("Contact_telnum").ToString
dgvHistory.DataSource = dt
文本框
中显示数据效果良好,但问题出在
datagridview
中。我尝试的是将此代码放入我的vb.net代码中

cmd = New SqlCommand("uspstudents", cn)
            cmd.Parameters.AddWithValue("@studID", frmView.dgv1.SelectedCells(0).Value)
            cmd.CommandType = CommandType.StoredProcedure
            da.SelectCommand = cmd
            da.Fill(dt)
            cboSchoolYear.Text = dt.Rows(0)("SchoolYear").ToString
            cboSection.Text = dt.Rows(0).Item("Section").ToString
            cboGradeLevel.Text = dt.Rows(0).Item("levels").ToString
            dtpEnrollment.Text = dt.Rows(0).Item("LatestDate").ToString
            txtStudLN.Text = dt.Rows(0)("SurName").ToString
            txtStudFN.Text = dt.Rows(0)("FirstName").ToString
            txtStudMN.Text = dt.Rows(0)("MiddleName").ToString
            txtAddress.Text = dt.Rows(0)("StudAddress").ToString
            dtpBirthday.Text = dt.Rows(0)("birthday").ToString
            cboNationality.Text = dt.Rows(0)("Nationality").ToString
            txtPlaceOfBirth.Text = dt.Rows(0)("BirthPlace").ToString
            txtStudentCP.Text = dt.Rows(0)("telnum").ToString
            txtSWG.Text = dt.Rows(0)("schoolWhereGraduated").ToString
            dtpDWG.Text = dt.Rows(0)("datesWhenGraduated").ToString
            txtSLA.Text = dt.Rows(0)("schoolLastAttended").ToString
            txtSchoolAddress.Text = dt.Rows(0)("SchoolAddress").ToString
            txtNote.Text = dt.Rows(0)("Note").ToString
            txtFatherGN.Text = dt.Rows(0)("Father_FirstName").ToString
            txtFatherMI.Text = dt.Rows(0)("Father_MI").ToString
            txtFatherLN.Text = dt.Rows(0)("Father_Lastname").ToString
            txtFatherOccupation.Text = dt.Rows(0)("Father_Occupation").ToString
            txtFatherCP.Text = dt.Rows(0)("Father_telnum").ToString
            txtMotherGN.Text = dt.Rows(0)("Mother_FirstName").ToString
            txtMotherLN.Text = dt.Rows(0)("Mother_LastName").ToString
            txtMotherMI.Text = dt.Rows(0)("Mother_MI").ToString
            txtMotherOccupation.Text = dt.Rows(0)("Mother_Occupation").ToString
            txtMotherCP.Text = dt.Rows(0)("Mother_telNum").ToString
            txtContactGN.Text = dt.Rows(0)("Contact_FirstName").ToString
            txtContactLN.Text = dt.Rows(0)("Contact_LastName").ToString
            txtContactMI.Text = dt.Rows(0)("Contact_MI").ToString
            txtContactAddress.Text = dt.Rows(0)("Contact_Address").ToString
            txtContactCP.Text = dt.Rows(0)("Contact_Mobile").ToString
            txtContactTelNum.Text = dt.Rows(0)("Contact_telnum").ToString
dgvHistory.DataSource = dt

但它显示了我记录中的所有数据,我只想在
datagridview
中显示
学年
部分
级别
。有人能帮我解决这个问题吗。谢谢

您需要手动为DataGridView创建列。类似这样的事情-

dgvHistory.ColumnCount = 3
dgvHistory.AutoGenerateColumns = False

dgvHistory.Columns(0).Name = "SchoolYear"
dgvHistory.Columns(0).DataPropertyName = "schoolyear"

dgvHistory.Columns(1).Name = "Section"
dgvHistory.Columns(1).DataPropertyName = "Section"

dgvHistory.Columns(2).Name = "Levels"
dgvHistory.Columns(2).DataPropertyName = "levels"

dgvHistory.DataSource = dt

这是可行的,但是如果我有很多学年、部分和级别(或者我应该说是学生的历史),会怎么样我想在
datagridview
中显示的内容?@DietherSilverious:它适用于任意数量的记录。这些代码显示了我所期望的内容,但我现在想知道为什么我的数据在
datagridview
中显示会变得重复?我的问题有什么不对吗?@DietherSilverious:你的问题可能是错的。但首先请检查
StudentHistory
表中特定studentid的记录。在SSMS中运行查询并查看结果。在SSMS中检查我的查询后,我发现查询有问题。谢谢你的大力帮助