Question

I'm a student currently doing my programming coursework. I am trying to get the MemberID from the Access database using a button in my DataGridView, but I end up with an error Data type mismatch in criteria expression when I select the member I wish to view. This is my code below:

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    Dim Member As String

    Dim ds As New DataSet
    Dim da As OleDb.OleDbDataAdapter

    da = New OleDb.OleDbDataAdapter(Query, Conn)


    Connect = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = \\DRS-SR-002\RMShared Documents\Computer Programming\Programs\year13\Kevin\Project\Database tables\DBTables.accdb"
    Conn = New OleDb.OleDbConnection(Connect)

    If e.ColumnIndex <> 4 Then
        Exit Sub
    End If

    Dim MemberSelectedID As String = DataGridView1.Rows(e.RowIndex).Cells(0).Value

    GroupBox1.Show()

    Query = "SELECT MemberID FROM tblMember WHERE [MemberID] = """ & MemberSelectedID & """"
    Conn.Open()
    da = New OleDb.OleDbDataAdapter(Query, Conn)
    da.Fill(ds, "Selected Member")
    Conn.Close()
    Member = ds.Tables("Selected Member").Rows(0).Item(0)
    TextBox1.Text = Query

End Sub
Was it helpful?

Solution

Your Query is wrong. It should be like this.

Query = "SELECT MemberID FROM tblMember WHERE [MemberID] = " & MemberSelectedID

OR

Query = "SELECT MemberID FROM tblMember WHERE [MemberID] = '" & MemberSelectedID & "'"

MemberID field is Integer so no need to specify it as string. In SQL Server single quote ' is used to specify string not double quote ".

OTHER TIPS

You are getting the MemberSelectedID from the DataGridView as String and then using it to query the database, on which I assume that it is defined as Numeric. That's the reason of the data type mismatch error

Try:

Dim MemberSelectedID As Integer = DataGridView1.Rows(e.RowIndex).Cells(0).Value

And

Query = "SELECT MemberID FROM tblMember WHERE MemberID = " & MemberSelectedID
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top