Errore bindingsource

giovedì 28 novembre 2013 - 23.28
Tag Elenco Tags  VB.NET  |  Visual Studio 2008

Zagor60 Profilo | Junior Member

salve,

in vb.net aundo carico i dati nei rispettivi textbox e combobox mi esce il seguente errore:
"In questo modo l'insieme avrebbe due associazioni alla stessa proprietà. Nome parametro: binding"

di seguito il codice:
sql = "SELECT idcliente,cognome,nome FROM tabclienti

ds = New DataSet("tabclienti")
da = New SqlDataAdapter(sql, Conn)
da.Fill(ds, "tabclienti")
bs = New BindingSource
bs.DataSource = ds
bs.DataMember = "tabclienti"
txtidcliente.DataBindings.Add("text", bs, "idcliente")
cmbcognome.DataBindings.Add("text", bs, cognome")
cmbinome.DataBindings.Add("text", bs, "nome")

l'errore mi esci sulla prima riga:
txtidcliente.DataBindings.Add("text", bs, "idcliente")

c'è una soluzione o altro metodo?

saluti

ridaria Profilo | Expert

>salve,
>

>"In questo modo l'insieme avrebbe due associazioni alla stessa
>proprietà. Nome parametro: binding"
>
>di seguito il codice:
> sql = "SELECT idcliente,cognome,nome FROM tabclienti
>
> ds = New DataSet("tabclienti")
> da = New SqlDataAdapter(sql, Conn)
> da.Fill(ds, "tabclienti")
> bs = New BindingSource
> bs.DataSource = ds
> bs.DataMember = "tabclienti"
>txtidcliente.DataBindings.Add("text", bs, "idcliente")
> cmbcognome.DataBindings.Add("text", bs, cognome")
> cmbinome.DataBindings.Add("text", bs, "nome")
>
>l'errore mi esci sulla prima riga:
> txtidcliente.DataBindings.Add("text", bs, "idcliente")
>
Ok ho fatto una verifica utilizzando il tuo stesso codice.
L'errore lo restituisce quando tenti l'associazione dei dati ai controlli per la seconda volta.

MI SPIEGO
Se lancio la prima volta il codice per il binding dei dati, tutto fila liscio ed esegue l'associazione.
Se rieseguo il binding una seconda volta mi genera l'errore.

Ciò è semplicemente dovuto al fatto che la text ha oramai la proprietà text già associata ad un dato.

Adesso non sapendo di preciso cosa devi fare e che uso fai di questo codice non saprei suggerirti una soluzione.

La prima che mi viene in mente però è quella di ripulire le proprietà text dal dataBinding, ad esempio con un ciclo del genere:

For Each ctl As Control In Me.Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
ctl.DataBindings.Clear()
End If
Next

in questo modo le proprietà text le trovi sempre pulite.

A seguire il codice intero che ho testato

Dim ds As New DataSet
Dim da As New SqlDataAdapter
Dim bs As New BindingSource

For Each ctl As Control In Me.Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
ctl.DataBindings.Clear()
End If
Next

Dim Sql As String = "SELECT * FROM anagSoggetti"

ds = New DataSet("anagSoggetti")
da = New SqlDataAdapter(Sql, Conn)
da.Fill(ds, "anagSoggetti")
bs = New BindingSource
bs.DataSource = ds
bs.DataMember = "anagSoggetti"
txtidcliente.DataBindings.Add("text", bs, "id")
cmbcognome.DataBindings.Add("text", bs, "ragionesociale")
cmbinome.DataBindings.Add("text", bs, "nome")

CIAO

Fammi sapere e se tutto vabene chiudi il post

;-)

CIAO









Riccardo D'Aria

Zagor60 Profilo | Junior Member

grazie,

funziona perfettamente.

buon week end
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5