【发布时间】:2013-02-14 14:15:03
【问题描述】:
我正在使用我在一篇旧 C# 帖子中找到的一些代码,通过 VB.net 将 DAO 插入到 Access 中。我运行代码来插入数字,它运行良好。但是,当我尝试在哈希之间插入一个date 作为字符串时,我得到一个Data type conversion error。我看了看,看不到如何更改记录集字段的数据类型以接受字符串/日期。
代码如下:
Dim dbEngine As New dao.DBEngine
Dim db As dao.Database = dbEngine.OpenDatabase(DataDirectoryName & DatabaseName)
Dim rs As dao.Recordset = db.OpenRecordset(TableName)
Dim myFields As dao.Field() = New dao.Field(FieldNames.Count - 1) {}
For k As Integer = 0 To FieldNames.Count - 1
myFields(k) = rs.Fields(FieldNames(k))
Next
dbEngine.BeginTrans()
For i As Double = 0 To Data.Rows - 1
rs.AddNew()
For k As Integer = 0 To FieldNames.Count - 1
rs.Fields(k).Value = Data.Value(k, i)
rs.Fields(FieldNames(k)).Value = Data.Value(k, i)
myFields(k).Value = Data.Value(k, i)
Next
rs.Update()
Next
dbEngine.CommitTrans()
rs.Close()
db.Close()
这是一行数据:
(0) = "74"
(1) = "#01 February 2012 00:02:00#"
(2) = "40"
(3) = "130"
(4) = "60"
'Data' 是一个自定义类,它是 list (of list (of string))。
【问题讨论】:
-
DAO 要求日期格式为 #mm/dd/yyyy hh:nn:ss#(年份也可以是 2 个字符)。重新格式化日期,你应该没问题。
-
@Ciarán 我已经尝试过 #mm/dd/yyyy hh:nn:ss# 和 '#mm/dd/yyyy hh:nn:ss#',两者都给出与以前相同的错误。
-
@Remou "" 分隔符来自 vb.net,将其显示为字符串,我不相信这些会发送到数据库,也不知道如何删除它们。与之前的评论一样,我尝试使用日期和字符串分隔符以及仅使用日期分隔符,但仍然得到相同的错误。
标签: vb.net ms-access datetime dao recordset