2017-11-18 47 views
0

我有这个问题,如果选择查询有行,它会传递数据到datagridview,但如果查询结果没有行,messagebox将出现包含“没有记录为此代码。“显示messagebox如果select查询返回没有行在vb.net

这是我的代码:

Private Sub txtScheduleID_KeyDown(sender As Object, e As KeyEventArgs) Handles txtScheduleID.KeyDown 
    If (e.KeyCode = Keys.Space) Then 

     Dim TextboxValue As String = RTrim(txtScheduleID.Text) 
     Dim vals = TextboxValue.Split(" ").Last() 

     sqlCon.Open() 
     Try 
      Dim QUERY As String 

      QUERY = "SELECT [Class Schedule LINE].SchedID, ListofSubjects.[Course No.], ListofSubjects.[Descriptive Title], Section.Section, Curriculum.[Lab.] + Curriculum.[Lec.], UtlyTIMETable.[FROM Time] +'-'+ UtlyTIMETable.[TO Time] + ' ' + UtlyDAY.Day + ' ' + UtlyRoom.Building + ' ' +UtlyRoom.[Room No.], UtlyInstructor.[Last Name] + ', ' + LEFT (UtlyInstructor.[First Name],1)+'.' " & 
        "FROM [Class Schedule LINE] INNER JOIN Curriculum ON [Class Schedule LINE].[Subject Code] = Curriculum.[Subject Code] INNER JOIN ListofSubjects ON Curriculum.SubjectID = ListofSubjects.SubjectID INNER JOIN Section ON [Class Schedule LINE].Section = Section.SectionID INNER JOIN UtlyTIMETable ON [Class Schedule LINE].TimeID = UtlyTIMETable.TimeID INNER JOIN UtlyDAY ON [Class Schedule LINE].DayID = UtlyDAY.DayID INNER JOIN UtlyRoom ON [Class Schedule LINE].RoomID = UtlyRoom.RoomID INNER JOIN UtlyInstructor ON [Class Schedule LINE].InstructorID = UtlyInstructor.IntructorID " & 
        "WHERE ([Class Schedule LINE].SchedID = '" + vals + "') " 
      CMD = New SqlCommand(QUERY, sqlCon) 
      Reader = CMD.ExecuteReader 
      While Reader.Read 
       table.Rows.Add(Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetDecimal(4), Reader.GetString(5), Reader.GetString(6)) 
       dgvSubjectsEnrolled.DataSource = table 
      End While 
     Catch ex As Exception 
      MessageBox.Show(ex.Message) 
     End Try 
     sqlCon.Close() 
    End If 
End Sub 

请编辑我的代码。谢谢

回答

1

读者没有错误是不行的。

If Reader.HasRows Then 
While Reader.Read 
'Your code 
Else 
MessageBox.Show() 
End If 

如何把你的连接。关闭在最后一块,所以你确信它会关闭,即使有一个错误。首先检查它的状态。

+1

哦,这只是一个简单的解决方案,我的问题。感谢@mary它工作! – deitysha