如何计算Visual Basic中的最大行数

时间:2013-12-10 03:28:46

标签: sql vb.net vba count rows

我有下一个按钮的代码。数据库中的数据正常显示。
问题是当我点击下一个按钮时,数据将再次重复为 - > data1> data2> data3> data1>数据2 ...
我被告知我应该计算最大行但我不知道该怎么做;我也在搜索编码,但我所理解的并没有出来。
请帮帮我~~~(我对英语不太好,抱歉)

  

Private Sub btnNext_Click(ByVal sender As System.Object,ByVal e As   System.EventArgs)处理btnNext.Click

    btnBack.Enabled = True

    da.Fill(dt)
    If position >= 0 Then

        position = position + 1
        Me.lblID.Text = dt.Rows(position).Item("RefNo")
        Me.txtboxName.Text = dt.Rows(position).Item("Name")
        Me.rtxtboxAddress.Text = dt.Rows(position).Item("Address")
        Me.txtboxContactNo.Text = dt.Rows(position).Item("ContNo")
        Me.txtboxFaxNo.Text = dt.Rows(position).Item("FaxNo")
        Me.txtboxBrand.Text = dt.Rows(position).Item("Brand")
        Me.txtboxModel.Text = dt.Rows(position).Item("Model")
        Me.txtboxSN.Text = dt.Rows(position).Item("SN")
        Me.rtxtboxProblems.Text = dt.Rows(position).Item("Problems")
        Me.rtxtboxTechRemark.Text = dt.Rows(position).Item("TechRemark")
        Me.rtxtboxServChange.Text = dt.Rows(position).Item("ServiceChange")
        Me.rtxtboxPartChange.Text = dt.Rows(position).Item("PartsChange")
        Me.txtboxTotal.Text = dt.Rows(position).Item("TotalPrice")

    End If

End Sub

我不知道这是否也需要被告知,但是...有两个不同的类
1)database.vb - sql编码
2)forms.vb - 编码我的视觉基本形式


请帮助我!!


感谢每个人都向我们求助!我重新编写了编码后,我找到了解决问题的方法。

我没有弄清楚位置值,行值相同。我的position = 0和dt.Rows.Count = 4的值,因为我有4个数据;所以当position = 0时,row = 1.我对此感到困惑;我认为两个值都是从0开始。

3 个答案:

答案 0 :(得分:0)

dt.Rows.Count是Rows集合中的行数。任何时候你想检查你是否达到了最大行数,比较行数与dt.Rows.Count

答案 1 :(得分:0)

多一点代码......这是代码......不要依赖它进行生产,因为我确定有很多它无法处理的极端情况,但是我想给你一张你如何处理它的图片,至少可以看一下你可能需要担心的东西(例如数据表中的0行)。请完成此操作并尝试理解代码...不要简单地复制/粘贴。

Private Sub btnNext_Click(ByVal sender As System.Object, 
                          ByVal e As System.EventArgs) Handles btnNext.Click

    If position >= dt.Rows.Count Then
        // No more rows to show after this one, so disable the next button
        btnNext.Enabled = False
    End If

    // Put check for zero in btnBack.Click to make sure it doesn't go below 0
    // I'm assuming position starts off at 0, and that you're showing the very
    // first row by default
    position += 1

    // This is to handle a condition like having 0 rows in the data table, 
    // in which case don't want to do the next part...
    If position > dt.Rows.Count Then Exit Sub

    // Only necessary once really, but we'll do it each time anyway...
    btnBack.Enabled = True

    da.Fill(dt) 

    position += 1

    // Update various textboxes and labels...
End Sub

答案 2 :(得分:0)

da,dt和position应该在你的sub上面声明。 Fill语句也应该在sub。

之外执行

在子目录中:

       If position >= 0 and position  < dr.rows.count then
           do stuff above
       else
           Beep ' out of range
       end if