插入日期作为一个字符串使用DAO记录集访问

问题描述:

我正在使用一些代码,我在旧的C#后发现运行DAO插入Access到VB.net。我运行代码来插入数字,它运行良好。但是,当我尝试在散列之间插入date作为字符串时,我得到一个Data type conversion error。我看了一下,我看不出如何更改记录集字段的数据类型以接受字符串/日期。插入日期作为一个字符串使用DAO记录集访问

下面是代码:

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" 

'数据' 是一个自定义的类,它是一个list (of list (of string))

+0

DAO要求日期格式为#mm/dd/yyyy hh:nn:ss#(年份也可以是2个字符)。重新格式化日期,你应该没问题。 – 2013-02-14 14:20:12

+0

@Ciarán我已经尝试#mm/dd/yyyy hh:nn:ss#和'#mm/dd/yyyy hh:nn:ss#',两者都给出与以前相同的错误。 – Pezzzz 2013-02-14 14:47:37

+0

@Remou“”分隔符是从vb.net显示这是一个字符串,我不相信这些发送到数据库,并不知道我会如何删除它们。正如在前面的评论中,我已经尝试过使用日期和字符串分隔符以及日期分隔符,但仍然得到相同的错误。 – Pezzzz 2013-02-14 14:49:07

虽然VBA将接受你的字符串的日期分隔符,例如#11 2013年2月20日20:23:11#似乎VB.Net不会,但它确实接受MS Access更新。

rs.Fields("adate").Value = CDate("11 February 2013 20:23:11") 
+0

好的,让我试试这个。 – Pezzzz 2013-02-14 14:50:24

+0

这已经解决了这个问题,谢谢。 – Pezzzz 2013-02-14 14:58:07