在VB.Net中的标签上显示数据库记录

时间:2014-03-16 13:15:51

标签: mysql vb.net

我有这个问题,当我把id没有。在textbox1中单击按钮1,记录成功显示,但是当我更改id时没有。在textbox1中再次单击button1,错误显示

  

ArgumentException未处理

     

这会导致集合中的两个绑定绑定到同一属性。参数名称:binding

我真的不明白这个的含义,顺便说一下还是新的并习惯了vb.net

Imports MySql.Data.MySqlClient

Public Class Form16

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim thisConnection As New MySqlConnection("server=localhost;user id=root;database=db")
        Dim DataSet1 As New DataSet


        Dim sql As String = "SELECT * FROM voter where vid='" & TextBox1.Text & "'"
        Dim da As New MySqlDataAdapter(sql, thisConnection)

        da.Fill(DataSet1, "db")
        Label2.DataBindings.Add("text", DataSet1, "db.fname")
        Label10.DataBindings.Add("text", DataSet1, "db.mi")
        Label11.DataBindings.Add("text", DataSet1, "db.lname")
        Label12.DataBindings.Add("text", DataSet1, "db.yr")
        Label13.DataBindings.Add("text", DataSet1, "db.sec")
        Label14.DataBindings.Add("text", DataSet1, "db.vstatus")

    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

如果在重新绑定之前清除 DataBindings集合,则会抛出此错误,因为控件只能一个绑定到指定的属性。

例如,Label2只能绑定一个属性Text。但是当您第二次单击该按钮时,第一次单击中添加的绑定仍然在集合中。

首先点击:

Label2.DataBindings.Add("Text", DataSet1, "db.fname")

第二次点击:

'Will throw an error because there's already a binding to property `Text`:
Label2.DataBindings.Add("Text", DataSet1, "db.fname")

在添加新绑定之前,请确保绑定尚不存在。

'Always do a reversed loop when removing items from a collection.
For index As Integer = (Label2.DataBindings.Count - 1) To 0 Step -1
    If (Label2.DataBindings.Item(index).PropertyName = "Text") Then
        'Ops, a binding to the property `Text` already exists.
        'Remove this and we'll be fine.
        Label2.DataBindings.RemoveAt(index)
    End If
Next

'We can now safely add a new binding to the `Text` property.
Label2.DataBindings.Add("Text", DataSet1, "db.fname")

更简单的方法是清除集合。

Label2.DataBindings.Clear()
Label2.DataBindings.Add("Text", DataSet1, "db.fname")