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

Import XML Data thru MSFlexigrid to SQL Table using vb6

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

我在下面附加我的代码:

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 在循环的外面。如果您更改代码并将 AddNew 移动到 For..Next 循环中,它应该会添加更多行。

您的代码将如下所示:

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