如何将时间插入访问数据库(VB Net)

时间:2016-05-30 00:10:12

标签: vb.net ms-access

我尝试通过VB Net将日期值插入MS Access数据库但我得到“无法将xxxxx转换为时间跨度”错误。我试过这个:

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = TimeOfDay.ToString("HH:mm:ss")

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = TimeOfDay

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = time.TimeOfDay

但没有,在Access数据库中,时间字段设置为“日期/时间”,因为没有时间选项。

这是该部分的完整摘要:

For i As Integer = 0 To Form2.DataGridView2.Rows.Count - 2
            Try
                ConexionBD.Open()
                ComandoBD.Connection = ConexionBD
                ComandoBD.CommandText = "INSERT INTO Ventas (IdProducto, Fecha, Hora) VALUES (@IdProducto, @Fecha, @Hora)"
                ComandoBD.Parameters.Add("@IdProducto", OleDbType.VarChar).Value = Form2.DataGridView2.Rows(i).Cells(0).Value
                ComandoBD.Parameters.Add("@Fecha", OleDbType.DBDate).Value = Now

                ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = time.TimeOfDay

                ComandoBD.ExecuteNonQuery()
                ComandoBD.Dispose()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
            ConexionBD.Close()
        Next

当我使用OleDbType.VarChar,OleDbType.Boolean甚至OleDbType.Binary执行此操作(对于其他字段)时,我没有任何问题。

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

使用

  ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = DateTime.Now.TimeOfDay
相关问题