我有下一个按钮的代码。数据库中的数据正常显示。
问题是当我点击下一个按钮时,数据将再次重复为 - > 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开始。
答案 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