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

问题描述 投票:-2回答:1

我的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
vb6
1个回答
1
投票

您只添加一条记录然后更新它。目前,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
© www.soinside.com 2019 - 2024. All rights reserved.