SQL查询中的Datepart函数不能与VB.NET中的OLEDB连接一起使用

时间:2014-06-29 04:06:12

标签: sql oledb datepart

我正在尝试与Access数据库中的日期列分开获取日期,月份和年份。

我正在使用以下代码。

我不知道这有什么问题,但是它显示错误或没有返回数据。

我是OLEDB的新手,所以我不知道是否可能。

请帮忙。

如果这种方式不正确,请告诉我替代方案。

    conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\MHV\Documents\Visual Studio 2012\Projects\UTS\UTS.mdb"

    conn = New OleDbConnection(conn_string)
    conn.Open()

    Grid_string = "SELECT datepart(mm,T_Date) from Transactions"

    Grid_cmd = New OleDbCommand(Grid_string, conn)
    RW_AD = New OleDbDataAdapter(Grid_cmd)
    Grid_DS = New DataSet

    Grid_cmd.Connection = conn
    Grid_cmd.CommandText = Grid_string

    RW_AD.Fill(Grid_DS, "Transactions")

    Grid_cmd.ExecuteNonQuery() 

    DataGridView1.DataSource = Grid_DS.Tables("Transactions").DefaultView

P.S。 :连接和其他东西工作正常。        它只在我使用datepart()时显示错误。

4 个答案:

答案 0 :(得分:1)

您能否尝试在报价单中设置日期部分?

Grid_string = "SELECT datepart(\"mm\",T_Date) from Transactions"

答案 1 :(得分:1)

使用'代替"将解决问题:

Grid_string = "SELECT datepart('mm',T_Date) from Transactions"

答案 2 :(得分:0)

尝试使用m代替mm

Grid_string = "SELECT datepart('m',T_Date) from Transactions"

答案 3 :(得分:0)

返回的数据类型是Int16。 转换为Int16或者你会收到错误