我有这个问题,当我把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
答案 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")