2014-03-12 1 views
-1

저는 현재 프로그래밍 과정을 수강중인 학생입니다. 내 DataGridView에있는 버튼을 사용하여 Access 데이터베이스에서 MemberID을 얻으려고하고 있지만 보려는 구성원을 선택할 때 Data type mismatch in criteria expression 오류가 발생합니다.데이터베이스 쿼리시 기준 식의 데이터 형식이 일치하지 않습니다.

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 
+0

어디에서이 오류가 발생합니까? 명시 해주세요. – SanketS

+0

@SanketS 아마도'da.Fill (ds, "Selected Member") ' – equisde

답변

1

쿼리가 잘못 : 그

시도 데이터 형식 불일치 오류의 이유이다. 이렇게되어야합니다.

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

또는

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

MEMBERID 필드는 너무 문자열로 지정할 필요 정수입니다. SQL Server의 작은 따옴표 '은 큰 따옴표가 아닌 문자열 "을 지정하는 데 사용됩니다.

+0

두번째 것은'MemberId'가 데이터베이스 레벨에서 'Numeric'로 정의되면 같은 오류로 예외를 던질 것입니다. – equisde

+0

예. 그러나 필드 유형에 따라 다릅니다. 데이터 유형이 '정수'인 경우 작동합니다. – SanketS

0

당신은 내가이 Numeric로 정의되어 있다고 가정하는 데이터베이스를 쿼리를 사용하여 다음 StringDataGridView에서 MemberSelectedID을 얻고있다 :이 아래에있는 내 코드입니다.

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

그리고

Query = "SELECT MemberID FROM tblMember WHERE MemberID = " & MemberSelectedID 
관련 문제