Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Form Master/Detail
venerdì 13 luglio 2007 - 15.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 13 lug 2007 - 15:17
Volevo creare un Form Master/Detail (via codice, non con wizard) dove selezionando un valore su una combobox mi cambi il contenuto di un DataGrid.
E' possibile sfruttando il BindingManager automatizzare la selezione?
Qualcuno ha qualche soluzione?
Grazie
Alessandro
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 13 lug 2007 - 16:08
Con due datagridview
http://community.visual-basic.it/lucianob/archive/2007/06/22/19710.aspx
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 13 lug 2007 - 16:27
Ciao e grazie per la risposta.
Ho implementato le due datagrid ma ho un'altro problema!
Le due tabelle devono avere due colonne relazionate... io ho usato questo metodo:
Dim KeyColumnParent(1) As DataColumn
KeyColumnParent(0) = SqlDS.Tables("Famiglie").Columns("CdFamiglia")
KeyColumnParent(1) = SqlDS.Tables("Famiglie").Columns("CdAzienda")
Dim KeyColumnChild(1) As DataColumn
KeyColumnChild(0) = SqlDS.Tables("AnagraficaComponenti").Columns("CdFamiglia")
KeyColumnChild(1) = SqlDS.Tables("AnagraficaComponenti").Columns("CdAzienda")
SqlDS.Relations.Add("ComponentiFamiglia", KeyColumnParent, KeyColumnChild)
passando quindi un array di DataColumn.
Stà di fatto che non funziona! La tabella Child mi viene restituita vuota.
Se creo invece una relazione con una sola colonna allora dà un risultato... nel mio caso non quello che mi server.
Mi sai aiutare?
Grazie
Ciao
Alessandro
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 13 lug 2007 - 16:36
Ti confesso, forse perchè oggi è venerdi 13 non ho capito niente
magari vedendo in funzione il progetto ((:
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 13 lug 2007 - 16:47
Mi spiego meglio (vediamo se ci riesco...):
Ho creato due DataTable
I campi chiave del primo datatable sono CdAzienda e CdFamiglia; nel secondo datatable sono invece CdAzienda, CdFamiglia e CdComponente. Il campo CdFamiglia può assumere lo stesso valore per CdAzienda diversi.
Ho la necessità di relazionare le due colonne CdAzienda e CdFamiglia presenti in entrambe le tabelle in modo da avere una relazione univoca.
Qual'è la giusta formula per creare questo tipo di relazione?
Spero di essermi spiegato, grazie
Ciao
Alessandro
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 13 lug 2007 - 17:10
Una cosa del genere:
Me.dataSet1.Relations.AddRange(New System.Data.DataRelation() {New System.Data.DataRelation("Relation1", "Master", "Detail", New String() {"CodiceAzienda", "CodiceFamiglia"}, New String() {"CodiceAzienda", "CodiceFamiglia"}, false)})
Me.dataSet1.Tables.AddRange(New System.Data.DataTable() {Me.dataTable1, Me.dataTable2})
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 14 lug 2007 - 09:08
Ciao, scusa se ti disturbo ancora con il mio problema...
ho provato a implementare quello che mi hai scritto ma in debug mi restituisce questa eccezione:
"Riferimento a un oggetto non impostato su un'istanza di oggetto"
Hai idea del perchè?
Io ho provato anche in questo modo:
Dim KeyColumnParent As DataRelation = New DataRelation("ComponentiFamiglia", "Famiglie", "AnagraficaComponenti", New String() {"CodiceAzienda", "CodiceFamiglia"}, New String() {"CodiceAzienda", "CodiceFamiglia"}, False)
DbDbase.SqlDS.Relations.Add(KeyColumnParent)
dove ho sbagliato?
Grazie per l'aiuto, Alessandro
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
sab 14 lug 2007 - 12:54
Ti assicuro che l'ho tolto da un programma funzionante in cui avevo disegnato il dataset manualmente così come gli indici e relazioni.
Verifica di avere le cose giuste.
Ti estrapolo un frammento di codice da "applied ado.net ..."
Dim parentCols() As DataColumn
Dim childCols() As DataColumn
parentCols(0) = DataSet1.Tables("Customers").Columns("CustID")
parentCols(1) = DataSet1.Tables("Customers").Columns("OrdID")
childCols(0) = DataSet1.Tables("Orders").Columns("CustID")
childCols(1) = DataSet1.Tables("Orders").Columns("OrdID")
Dim CustOrderRel As DataRelation
CustOrderRel = New DataRelation("CustomersOrders", parentCols, childCols)
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 14 lug 2007 - 13:10
Ho risolto il mio problema... come immaginavo era una ca..ata.
Ce l'avevo sotto gli occhi e non me n'ero accorto che il campo chiave della tabella Master conteneva dei valori non identici a quelli della tabella Child (c'erano degli spazi dopo). Per questo il programma non mi restituiva errore ma non mi dava nemmeno i risultati sperati. Ora funziona tutto.
Ti ringrazio per la tua disponibilità e per i comunque utili consigli.
Ciao
Alessandro
Torna su
Stanze Forum
Elenco Threads
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 !