nengft 2015-04-23 02:02 采纳率: 0%
浏览 1705
已采纳

各路好汉大神,急需救助,我写的数据库代码在显示数据时,只显示最后一条

我写的代码如下:

 Sub depart(ByVal a As String)
        Dim i As Short
        Dim j As Short
        Dim n As Integer
        Dim k As Integer
        n = DataSet11.Tables("timing").Rows.Count
        '  If InStr(1, a, "*") = 0 Then '  以防没有数字直接读入*end of table
        For k = 1 To n
            For i = 1 To 3
                a = LTrim(a)
                j = InStr(1, a, " ")
                Select Case i
                    Case 1
                        If Len(Trim(a)) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(0) = Val(a.Substring(0, j - 1))
                            a = Mid(a, j)
                        End If
                    Case 2
                        If Len(a) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(1) = Val(a.Substring(0, j - 1))
                            a = Mid(a, j)
                        End If
                    Case 3
                        If Len(a) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(2) = Val(a)
                        End If
                End Select
            Next i

        Next

If InStr(1, a, "* Date records of type dd mm yyyy") <> 0 Then

            a = LineInput(1)
            Debug.Print(a)
            Do
                Call depart(a)
                Debug.Print(a)
                a = LineInput(1)
            Loop Until InStr(1, a, "*") <> 0
        End If

从txt中找出的数据,都是对的,但是在数据上只显示最后一条记录。。。为什么啊?求大神帮我修改代码

  • 写回答

6条回答 默认 最新

  • danielinbiti 2015-04-23 02:36
    关注

    depart改成类似下面的逻辑,没有调测过,自己试吧

     Sub depart(ByVal a As String)
            Dim i As Short
            Dim j As Short
            Dim n As Integer
            Dim k As Integer
            Dim dt as DataTable = DataSet11.Tables("timing")
            dim dr as datarow=DataTable.NewRow()
            '  If InStr(1, a, "*") = 0 Then '  以防没有数字直接读入*end of table
            For i = 1 To 3
                    a = LTrim(a)
                    j = InStr(1, a, " ")
                    Select Case i
                        Case 1
                            If Len(Trim(a)) = 0 Then
                                Exit For
                            Else
                                dr(0) = Val(a.Substring(0, j - 1))
                                a = Mid(a, j)
                            End If
                        Case 2
                            If Len(a) = 0 Then
                                Exit For
                            Else
                                dr(1) = Val(a.Substring(0, j - 1))
                                a = Mid(a, j)
                            End If
                        Case 3
                            If Len(a) = 0 Then
                                Exit For
                            Else
                                dr(2) = Val(a)
                            End If
                    End Select
                Next i
             dt.rows.add(dr)
            'End If
            'Debug.Print(k, i, j, n)
        End Sub
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)