使用vb6通过MSFlexigrid将XML数据导入SQL表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vb6通过MSFlexigrid将XML数据导入SQL表相关的知识,希望对你有一定的参考价值。

我的VB6代码通过每条记录读取XML文件加载到MSFLEXIGRID循环中,如果我看到一个断点,则不会在sql表中添加数据,除了一条记录,为什么它发生不知道。不会抛出任何错误。

我在下面添加我的代码:

Private Sub cmdPrint_Click()
    Dim rsMtrData As New ADODB.Recordset
    Dim irow As Integer
    rsClose rsMtrData
    rsMtrData.Open "select * from Master_Meter_Reading ", cn, adOpenKeyset, adLockPessimistic
    With MSFlexGrid1
        rsMtrData.AddNew
        For irow = 0 To .Rows - 1
            .Row = irow
            .Col = 0
            rsMtrData!Snapshot = .text & ""
            .Col = 1
            rsMtrData!LoadSurveyDTime = Format(.text, "dd-MM-yyyy hh:mm:SS")
            .Col = 2
            rsMtrData!LoadSurveyDateDay = g_ConvertNumber(.text)
            .Col = 3
            rsMtrData!LoadSurveyDate = Format(.text, g_DateFormat)
            .Col = 4
            rsMtrData!LoadSurveyDateParmVal = g_ConvertNumber(.text)
            .Col = 5
            rsMtrData!LoadSurveyType = .text & ""
            .Col = 6
            rsMtrData!LoadSurveyUnit = g_ConvertNumber(.text)
            .Col = 7
            rsMtrData!LoadSurveySlipValParmVal = .text & ""
            .Col = 8
            rsMtrData!LoadSurveySlipValParmValTime = g_ConvertNumber(.text)
            rsMtrData.Update
        Next irow
    End With
    MsgBox "Data Successfully Saved", vbInformation
End Sub
答案

您只添加一条记录然后更新它。目前,AddNew位于循环外部。如果更改代码并在For..Next循环内移动AddNew,则应添加更多行。

您的代码看起来像这样:

Private Sub cmdPrint_Click()
Dim rsMtrData As New ADODB.Recordset
Dim irow As Integer

rsClose rsMtrData

rsMtrData.Open "select * from Master_Meter_Reading ", cn, adOpenKeyset, adLockPessimistic

With MSFlexGrid1

    For irow = 0 To .Rows - 1
        rsMtrData.AddNew    'This is the line that has moved from outside to inside the loop.

        .Row = irow

        .Col = 0
        rsMtrData!Snapshot = .text & ""

        .Col = 1
        rsMtrData!LoadSurveyDTime = Format(.text, "dd-MM-yyyy hh:mm:SS")

        .Col = 2
        rsMtrData!LoadSurveyDateDay = g_ConvertNumber(.text)

        .Col = 3
        rsMtrData!LoadSurveyDate = Format(.text, g_DateFormat)

        .Col = 4
        rsMtrData!LoadSurveyDateParmVal = g_ConvertNumber(.text)

        .Col = 5
        rsMtrData!LoadSurveyType = .text & ""

        .Col = 6
        rsMtrData!LoadSurveyUnit = g_ConvertNumber(.text)

        .Col = 7
        rsMtrData!LoadSurveySlipValParmVal = .text & ""

        .Col = 8
        rsMtrData!LoadSurveySlipValParmValTime = g_ConvertNumber(.text)

        rsMtrData.Update
    Next irow
End With

MsgBox "Data Successfully Saved", vbInformation
End Sub

以上是关于使用vb6通过MSFlexigrid将XML数据导入SQL表的主要内容,如果未能解决你的问题,请参考以下文章

VB6 - 将数据从 mySQL 表插入访问表

替换VB6中的XML节点中的值

当多个用户连接到数据库时,VB6 数据库操作变慢

如何通过 Winsock 从外部设备检索数据到 Microsoft Visual Basic (VB6)

在 vb6 中读取 xml 文件

如何通过 VB6 使用 DAO.Relation?