当前位置: 代码迷 >> VB Dotnet >> VB.NET 查询access里两个日期间的数据出错
  详细解决方案

VB.NET 查询access里两个日期间的数据出错

热度:51   发布时间:2016-04-25 02:11:18.0
VB.NET 查询access里两个日期间的数据报错
两个日期间数据查询的主要代码  copy如下:

    数据库名字为 “ student4 ”  表名 :“通信录”      
express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "cdata('" + _ComboBox5.Text + " ')"

 express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "cdata('" + _ComboBox8.Text + " ')"

express = express1 + logic + express2

 OleDbDataAdapter1.SelectCommand.CommandText = " select * from 通信录 where " + express

DataGrid1.DataSource = newdataset.通信录

程序一直报错   “ 语法错误(操作符丢失)在查询表达式: 出生年月》=cdata(1986-12-1)or 出生年月《=cdata (1986-12-11)中。
我知道这很可能是我sql语言写错了,但我查阅了很多网上资料就是不会写,请各位大侠改好发给我,好吗

这段全部程序如下:

   Dim newdataset As New TXLDataSet1
        Dim express, express1, express2, logic As String
        If ComboBox5.Text = "" Then Exit Sub
        If CheckBox1.Checked And ComboBox8.Text = "" Then Exit Sub
        If ComboBox3.SelectedItem = "出生年月" Then
            express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "cdata('" + _ComboBox5.Text + " ')"
        Else
            express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "" + ComboBox5.Text + ""

        End If
        If ComboBox6.SelectedItem = "出生年月" Then
            express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "cdata('" + _ComboBox8.Text + " ')"
        Else
            express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "" + ComboBox8.Text + ""
        End If
        If RadioButton3.Checked Then logic = "and" Else logic = "or"
        If CheckBox1.Checked Then
            express = express1 + logic + express2
        Else
            express = express1
        End If
        OleDbDataAdapter1.SelectCommand.CommandText = " select * from 通信录 where " + express
        Try
            OleDbDataAdapter1.Fill(newdataset)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        DataGrid1.DataSource = newdataset.通信录

    End Sub
------解决思路----------------------
cdata 是啥?不是cdate吗?
access把字符串变为日期一般做法是在字符串的前后拼接上#,如"#2014-09-28#"
另外》=是咋回事?不应该是>=吗?
  相关解决方案