尝试转到DB中的下一行时出现重复绑定错误

时间:2016-03-21 16:15:17

标签: vb.net data-binding

我是这个整个绑定的新手,但基本上当我按下我的表单上的下一个按钮时,它意味着滚动我的数据库显示每一行,但我将在下面提供的代码只是一个临时,因为我想确保它所有工作在添加更多代码之前。

当我加载该部分时,我有它所以它将第一行预加载到我的表单中所以当你按下它时它将带你到第2行然后再次将带你到第3行等但是当我点击下一步去第2行的第3行收到错误:这会导致集合中的两个绑定绑定到同一属性。

代码:

Private Sub click()
    sql = "Select * from tbl"
    Using dbcon As New OleDbConnection(ACEConnStr)
        Using cmd As New OleDbCommand(sql, dbcon)

            dbcon.Open()

            dtSample = New DataTable
            dtSample.Load(cmd.ExecuteReader)

        End Using
    End Using

    ' initialize BS from DT
    bsSample = New BindingSource(dtSample, Nothing)

    TxtCI.DataBindings.Add("Text", bsSample, "CustomerID")
End Sub

下一步按钮:

Private Sub BtnNext_Click(sender As Object, e As EventArgs) Handles BtnNext.Click
    click()
    DataBindings.Clear()
    bsSample.MoveNext()

    BtnNext.Enabled = (bsSample.Count - 1 > bsSample.Position)
End Sub

1 个答案:

答案 0 :(得分:0)

此代码块:

Private Sub nclick()
    sql = "Select * from tblcustomer"
    Using dbcon As New OleDbConnection(ACEConnStr)
        Using cmd As New OleDbCommand(sql, dbcon)

            dbcon.Open()

            dtSample = New DataTable
            dtSample.Load(cmd.ExecuteReader)
        End Using
    End Using

    ' initialize BS from DT
    bsSample = New BindingSource(dtSample, Nothing)
    TxtCI.DataBindings.Add("Text", bsSample, "CustomerID")
    TxtName.DataBindings.Add("Text", bsSample, "Title")
    ChkSales.DataBindings.Add("Checked", bsSample, "SalesCustomer")
End Sub

...需要运行一次,但只需一次。将其全部移动到表单加载。然后:

Private Sub BtnNext_Click...
    bsSample.MoveNext()

    BtnNext.Enabled = (bsSample.Count - 1 > bsSample.Position)
End Sub

我不确定这是一个查找对话框还是什么,但应该注意的是,所有客户的DataTable都可以在应用程序范围内使用 - 例如在尝试删除之前检查客户#30是否存在。