快来帮帮我吧
数据库连接什么的都没问题,绑定好之后,指针不往下移动,显示的一直都是第一条数据
[code=VB.NET][/code]
Private Sub formmain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim selectCmd As String = "select Person as 联系人,Telephone as 手机,Phone as 电话,Email as 邮箱,Relation as 关系, Comperny as 单位 from 电话表 "
Dim connStr As String = "Server=localhost;database=vb.net;integrated security=SSPI"
Dim conn As SqlConnection, myAdapter As SqlDataAdapter
Dim myDataSet As DataSet = New DataSet()
conn = New SqlConnection(connStr)
conn.Open()
myAdapter = New SqlDataAdapter(selectCmd, conn)
myAdapter.Fill(myDataSet, "电话表")
Dim bindName As Binding = New Binding("Text", myDataSet, "电话表.联系人")
Dim bindRelation As Binding = New Binding("Text", myDataSet, "电话表.关系")
Dim bindComperny As Binding = New Binding("Text", myDataSet, "电话表.单位")
Dim bindTelephone As Binding = New Binding("Text", myDataSet, "电话表.手机")
Dim bindPhone As Binding = New Binding("Text", myDataSet, "电话表.电话")
Dim bindEmail As Binding = New Binding("Text", myDataSet, "电话表.邮箱")
txtname.DataBindings.Add(bindName)
txtclass.DataBindings.Add(bindRelation)
txtcomperny.DataBindings.Add(bindComperny)
txtTelephone.DataBindings.Add(bindTelephone)
txtphone.DataBindings.Add(bindPhone)
txtemail.DataBindings.Add(bindEmail)
Bm = Me.BindingContext(myDataSet, "电话表")
CheckBm()
End Sub
Private Function CheckBm()
If Bm.Position = 0 Then
btnFirst.Enabled = False
btnPrev.Enabled = False
btnLast.Enabled = True
btnNext.Enabled = True
ElseIf Bm.Position = Bm.Count - 1 Then
btnFirst.Enabled = True
btnPrev.Enabled = True
btnLast.Enabled = False
btnNext.Enabled = False
Else
btnFirst.Enabled = True
btnPrev.Enabled = True
btnLast.Enabled = True
btnNext.Enabled = True
End If
End Function
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Bm.Position = 0
CheckBm()
End Sub
Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Bm.Position > 0 Then
Bm.Position -= 1
End If
CheckBm()
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Bm.Position < Bm.Count - 1 Then
Bm.Position += 1
End If
CheckBm()
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Bm.Position = Bm.Count - 1
CheckBm()
End Sub
[解决办法]
必须用邦定吗?
也可以直接在DataTable中读取出数据来显示在文本框中。
逻辑如下:
1、写一个ShowData的方法(带有一个整形的参数),用来显示DataTable中指定行的数据。
2、在btnFirst、btnPrev、btnNext、btnLast四个按钮中确定当前行,然后将当前行作为参数调用ShowData方法显示当前行的数据。