title: How to check if a record exists in an Access database
body: <p>I'm trying a new approach for a project that I'm working on and I'm just starting to learn about Access Databases. I using <strong>VB.net</strong> and my question is: How do you see if a record exists in the table of the database. I thought I had it understood but that is not the case. I'm creating a login and I want it to check if the Username that they typed in exists before it tries to compare what you typed with what's in the database. I see alot of questions on how to do this...but not for VB.net <em>and</em> MS Access</p>
  
  <p>Here's my code:</p>
  
  <pre><code>Imports System.Data.OleDb
  Public Class LoginForm1
      Dim provider As String
      Dim dataFile As String
      Dim connString As String
      Public myConnection As OleDbConnection = New OleDbConnection
      Public dr As OleDbDataReader
      Dim Errors As String
      Public Sub AccessAccountDatabase()
          provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
          dataFile = "C:\Users\Richard\Documents\Visual Studio 2010\Projects\CybSol Journal Database\CybSol Journal Database\cgi-bin\Data.mdb"
          connString = provider &amp; dataFile
          myConnection.ConnectionString = connString
          Errors = ""
          Try
              myConnection.Open()
              Dim str As String
              str = "SELECT * FROM Accounts WHERE Username='" &amp; UsernameTxt.Text &amp; "' AND Password='" &amp; PasswordTxt.Text &amp; "'"
              Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
              dr = cmd.ExecuteReader
              dr.Read()
  
              If UsernameTxt.Text = dr("Username").ToString AndAlso PasswordTxt.Text = dr("Password").ToString Then
                  Dim Welcome As String = "SELECT * FROM Accounts WHERE Real_Name=" &amp; "Username"
                  MsgBox("Welcome back " &amp; dr("Real_Name") &amp; "!")
              Else
                  MsgBox("Login Failure")
              End If
              myConnection.Close()
          Catch ex As Exception
              MsgBox(ex.ToString)
          End Try
      End Sub
  
      Private Sub OkayBtn_Click(sender As System.Object, e As System.EventArgs) Handles OkayBtn.Click
          AccessAccountDatabase()
      End Sub
  End Class
  </code></pre>
  
  <p>So now my question is... How do you get it to check if a record exists in the database, because when you type in the correct information (The correct username and password that exists in the database) it says welcome and all. But when you type in the wrong Username and/or Password it doesn't work. Without the "Try Catch" statement the program just freezes. With the try catch it states this:</p>
  
  <pre><code>System.InvalidOperationException: No data exists for the row/column.
     at System.Data.OleDb.OleDbDataReader.DoValueCheck(Int32 ordinal)
     at System.Data.OleDb.OleDbDataReader.GetValue(Int32 ordinal)
     at System.Data.OleDb.OleDbDataReader.get_Item(String name)
     at CybSol_Journal_Database.LoginForm1.AccessAccountDatabase() in c:\users\richard\documents\visual studio 2010\Projects\CybSol Journal Database\CybSol Journal Database\LoginForm1.vb:line 36
  </code></pre>
  
  <p>Addition information: line 36 is this: <code>If UsernameTxt.Text = dr("Username").ToString AndAlso PasswordTxt.Text = dr("Password").ToString Then</code></p>