VB.NEt - 条件表达式中的数据类型不匹配

时间:2016-08-09 02:02:20

标签: vb.net

我有一条错误消息“标准表达式中的数据类型不匹配”

    Dim Conn As OleDbConnection = New OleDbConnection
    Dim provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="  
    Dim dataFile = "E:\TME Review\TME Review Database.accdb"
    Conn.ConnectionString = provider & dataFile 
    Conn.Open()  
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Monthly where [Date Ended]= '" + TextBox3.Text + "'", Conn)  
    Dim dr As OleDbDataReader = cmd.ExecuteReader 

[Date Ended]数据类型是文本,textbox3的内容是字符串值。我仔细检查过。知道为什么我得到错误数据类型不匹配?提前致谢

2 个答案:

答案 0 :(得分:-1)

在VB中,要连接字符串,必须使用"&"相反" +"。

修改

如果所有数据都是字符串,这是正确的答案...... 但是,如果您的日期设置为' 12/05/2009'你必须把它括在#中,如:

  where [End Date] = '#12/05/2009#'

答案 1 :(得分:-1)

检查文本框中输入的值。在这种使用日期字段过滤掉记录的情况下,您最好首先检查文本框中的值是否为有效日期,然后再将其用于OleDBCommand。

Dim cmd As OleDbCommand= Nothing
If IsDate(TextBox3.Text)= True Then
    cmd= New OleDbCommand("SELECT * FROM Monthly where [Date Ended]= '" + TextBox3.Text + "'", Conn)
End If