Sono in crisi!
In una form ho inserito alcune textbox e un dgv (in relazione padre/figlio).
ho caricato il dataset (DaRicette) delle tabelle interessate con un dataadapter, ho eseguito il fill, ho creato la relazione padre/figlio e tutto va bene.
Ho poi creato un bindingnavigator.
ho definito un BindingSurce per la tabella padre (bsRicette)
ho bindato le textbox e il bindingnavigator a questo bindingsurce
vedo come si comporta il tutto...
Il bindingnavigator mi permette di muovermi tra i record della tabella padre, ma ho perso la sincronia con il dgv...
modifico quindi il datasurce del dgv (da DsRicette a BsRicette)
in corrispondenza del dgv.datamember mi dà il seguente errore:
"Impossibile trovare la proprietà DataMember 'Ricette' in DataSource"
Sicuramente avrò fatto qualche erroraccio.... posto il codice sperando che qualcuno mi possa illuminare.........
Grazie ap
[CODE]Sub CaricaDati()
strconn = CreoStrconn()
Dim sqlRicetteDett As String
Dim sqlProdotto As String
Dim sqlUm As String
sql = "SELECT* FROM ricette Order By Ricetta"
sqlRicetteDett = "SELECT * FROM Ricette_dett"
sqlProdotto = "SELECT * FROM Prodotto ORDER BY Prodotto"
sqlUm = "SELECT* FROM UnitaMisura ORDER BY Um"
Dim DaRicette As New OleDb.OleDbDataAdapter(sql, strconn)
DaRicette.Fill(DsRicette, "Ricette")
DaRicette.SelectCommand.CommandText = sqlRicetteDett
DaRicette.Fill(DsRicette, "Ricette_dett")
DaRicette.SelectCommand.CommandText = sqlProdotto
DaRicette.Fill(DsRicette, "Prodotto")
DaRicette.SelectCommand.CommandText = sqlUm
DaRicette.Fill(DsRicette, "UnitaMisura")
End Sub
Sub creaBinding()
'binding usato prima di inserire bindingnavigator
'TxtIdRicetta.DataBindings.Add("text", DsRicette.Tables("Ricette"), "idRicetta")
' TxtRicetta.DataBindings.Add("Text", DsRicette.Tables("Ricette"), "Ricetta")
bsRicette.DataSource = DsRicette
bsRicette.DataMember = "Ricette"
TxtIdRicetta.DataBindings.Add(New Binding("text", bsRicette, "IdRicetta", True))
TxtRicetta.DataBindings.Add(New Binding("Text", bsRicette, "Ricetta", True))
DgVRicette_dett.DataSource = bsRicette
DgVRicette_dett.DataMember = "Ricette.RelRicetteRicetteDett"
DgVRicette_dett.AutoGenerateColumns = False
'ho provato anche così ma mi dà errore, impossibile convertire in integer
'TxtIdRicetta.DataBindings.Add(New Binding("Text", DgVRicette_dett.DataSource, "IdRicette_dett"))
'CREO BINDING COMBO
ColCboProdotto.DataSource = DsRicette.Tables("Prodotto")
ColCboProdotto.DisplayMember = "prodotto"
ColCboProdotto.ValueMember = "IdProdotto"
ColCboProdotto.DataPropertyName = "IdProdotto"
colCboIdUm.DataSource = DsRicette.Tables("UnitaMisura")
colCboIdUm.DisplayMember = "Um"
colCboIdUm.ValueMember = "IdUm"
colCboIdUm.DataPropertyName = "IdUm"
End Sub
Sub CreoRelazione()
'associo campo master e campo secondario
Dim RelRicetteRicetteDett As Data.DataRelation
Dim ColMaster1 As Data.DataColumn
Dim ColDetail1 As Data.DataColumn
ColMaster1 = DsRicette.Tables("Ricette").Columns("IdRicetta")
'ColMaster1 = Me.bsRicette("IdRicetta")
'ColDetail1 = Me.bsRicette_dett("IdRicetta")
ColDetail1 = DsRicette.Tables("Ricette_dett").Columns("IdRicett a")
RelRicetteRicetteDett = New Data.DataRelation("RelRicetteRicetteDett", ColMaster1, ColDetail1)
DsRicette.Relations.Add(RelRicetteRicetteDett)
CODE]