title: How do I catch an SQL exception in a VB.NET 2010 code?
body: <p>Okay, I am building a VB.NET system but I'm having troubles in catching an SQL exception in some parts of my code. In short, I am using a SELECT sql query to retrieve a particular record and I want to determine whether a record exist in a MSAccess database so that I don't retrieve 0 rows. 0 rows will lead to an exception during printing to a TextField. The following is a sample code I'm working on:</p>
  
  <pre><code>    If txSearch.Text = "" Then
          MsgBox("Please type the user id or use the barcode reader to scan",     MsgBoxStyle.OkOnly, "Search Field Empty")
      End If
  
      'ElseIf txSearch.Text != "" Then
      If txSearch.Text &lt;&gt; "" Then
          Dim con As New OleDb.OleDbConnection
          Dim dbProvider As String
          Dim dbSource As String
          Dim ds As New DataSet
          Dim dt As New DataSet
          Dim da As OleDb.OleDbDataAdapter
          Dim de As OleDb.OleDbDataAdapter
          Dim sql As String
          Dim sql1 As String
          Dim temp_num As Integer
          Dim cmd As New OleDb.OleDbCommand
  
          dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
          dbSource = "Data Source = new.mdb"
  
          con.ConnectionString = dbProvider &amp; dbSource
  
          con.Open()
  
          Dim search As String
          search = txSearch.Text
          MessageBox.Show("You are going to search for " + search + ". Click OK to continue.")
  
          sql = "SELECT * FROM Student_Details WHERE Admin_No = '" &amp; txSearch.Text &amp; "'"
  
          sql1 = "SELECT * FROM Laptop_Details WHERE Admin_No = '" &amp; txSearch.Text &amp; "'"
  
          da = New OleDb.OleDbDataAdapter(sql, con)
  
          de = New OleDb.OleDbDataAdapter(sql1, con)
  
          'Dim check As Integer = sql.
          'If check &gt; 0 Then
  
          'da.SelectCommand = cmd
          ds = New DataSet("Student_Details")
          da.Fill(ds, "Student_Details")
          dt = New DataSet("Laptop_Details")
          de.Fill(dt, "Laptop_Details")
          'con.Close()
  
          'If sql &lt;&gt; "" And sql1 &lt;&gt; "" Then
          'If ds.Equals(1) And ds.Equals(1) Then
          txAdminNO.Text = ds.Tables("Student_Details").Rows(0).Item(0)
          txName.Text = ds.Tables("Student_Details").Rows(0).Item(1)
          txProgramme.Text = ds.Tables("Student_Details").Rows(0).Item(2)
          cmbSStatus.SelectedText = ds.Tables("Student_Details").Rows(0).Item(3)
          txSerial.Text = dt.Tables("Laptop_Details").Rows(0).Item(1)
          txModel.Text = dt.Tables("Laptop_Details").Rows(0).Item(2)
  
          Dim com As New OleDb.OleDbCommand(sql, con)
          Dim com1 As New OleDb.OleDbCommand(sql1, con)
  
          Try
  
              temp_num = com.ExecuteNonQuery
              temp_num = com1.ExecuteNonQuery
  
          Catch ex As IndexOutOfRangeException
              Trace.WriteLine(ex.ToString)
  
          End Try
  
          con.Close()
          'End If
          'End If
      End If
  </code></pre>