Sql 如何在Visual Basic中计算最大行数

Sql 如何在Visual Basic中计算最大行数,sql,vb.net,vba,count,rows,Sql,Vb.net,Vba,Count,Rows,我有“下一步”按钮的代码。数据库中的数据显示正常。 问题是,当我单击“下一步”按钮时,数据将再次重复-->数据1>数据2>数据3>数据1>数据2。。。 有人告诉我应该计算最大行数,但我不知道怎么做;我也在搜索代码,但没有找到我理解的东西。 请帮帮我~~~(对不起,我的英语不是很好) 私有子btnNext_单击(ByVal发送方作为System.Object,ByVal e作为System.Object System.EventArgs)处理btnNext。单击 btnBack.Ena

我有“下一步”按钮的代码。数据库中的数据显示正常。
问题是,当我单击“下一步”按钮时,数据将再次重复-->数据1>数据2>数据3>数据1>数据2。。。
有人告诉我应该计算最大行数,但我不知道怎么做;我也在搜索代码,但没有找到我理解的东西。
请帮帮我~~~(对不起,我的英语不是很好)

私有子btnNext_单击(ByVal发送方作为System.Object,ByVal e作为System.Object System.EventArgs)处理btnNext。单击

    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-我的visual basic表单的编码


请帮帮我


谢谢所有给我答案的人!!重新配置编码后,我找到了问题的解决方案。


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

dt.Rows.Count
是Rows集合中的行数。任何时候,如果您想检查是否已达到最大行数,请将行计数与dt.rows.count进行比较。

再多些代码。。。这是错误的代码。。。不要依赖它进行生产,因为我确信它不能处理很多角落的情况,但我想让您了解如何处理它,并至少了解一些您可能需要担心的事情(例如,数据表中的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

da、dt和位置应在上述子项之外声明。Fill语句也应在子系统外部执行

在小组中:

       If position >= 0 and position  < dr.rows.count then
           do stuff above
       else
           Beep ' out of range
       end if
如果位置>=0且位置
嗯,我真的很惊讶你没有得到一个
索引的异常
。。。如果超过最大行数,则应得到该值。无论哪种方式,您都可以执行
dt.Rows.Count
来获取
数据表中的行数
@JeffBridgman对不起。。。但我不明白。在编码中我必须在哪里写入dt.Rows.Count?对不起。。。但我不明白。在编码中我必须在哪里写dt.Rows.Count?我添加了更多的解释。我试图理解编码并使用它。但也有一个问题。。。很抱歉,请帮我修一下。我禁用了line position+=1,因为它使行从data1>data3跳转而不显示data2,尽管如果我单击“上一步”按钮,则会显示data2(因此数据不会丢失)。但是如果我禁用该行,那么就不会显示data3(只有data1>data2)!我不知道为什么,但是“下一步”按钮被禁用了,这不是意味着它到达了不是最后一行的最大行吗?索引从零开始。。。第一次输入此函数时,位置0的值是多少?尝试设置断点以查看值是什么。position的值=0。嗯。。。对不起,我不知道!