View Full Version : [visual basic .net] Passare BindingSource a form figli
Salve a tutti e buon ferragosto.
Dopo mesi di fermo ho rimesso mani ad un vecchio progetto in VB .net lasciato incompiuto si tratta di un gestore di clienti. Ad esso è associato un Database SQL Express 2010 anche visual studio è alla versione 2010. Il mio problema è che vorrei avere un form padre e aprire ogni scheda cliente in un form figlio però non saprei proprio dove sbattere la testa.... Qualcuno sa indicarmi la giusta direzione? Darmi qualche suggerimento?:muro:
Grazie in anticipo.
Andrea
Bah, tutto dipende da come è stata realizzata la Form principale. Se è stata generata con il wizard automatico di VS ( scelta che non consiglio ) dovrebbe essere possibile specificare l'apertura di ogni record ( tipo datagridview... ) su una nuova Form.
In ogni caso, più che BindingSource, puoi sempre prendere un campo significativo e soprattutto univoco ( id, codice_fiscale, ragione_sociale, ecc... ) e passarlo alla query sull'apertura della Form secondaria...
Ma è molto difficile consigliare senza sapere come è stata costruita l'origine dati sulla Form padre.
Grazie per la celere risposta. Effettivamente l'origine dati sulla Form padre è stata costruita attraverso il Wizard di VS che fai bene a sconsigliare! Proverò con un approccio più manuale... Tu sapresti consigliarmi un approccio "giusto"? Perché il wizard di VS è comodo perché basta fare un Drag&Drop dei campi della tabella sul Form et voilà! Tutte le textbox (perché non volevo usare Datagrid) sono belle che collegate al relativo campo! E visto che ho una tabella con una trentina di campi non vorrei doverli "bindare" tutti manualmente... Cosa mi consiglieresti di fare? :confused: Perché l'unico metodo che mi è venuto in mente è questo:
Dim con As New SqlConnection("Data Source=MioServer\SQLEXPRESS;Initial Catalog=Prova;Integrated Security=True")
Dim da As New SqlDataAdapter("Select * From tblProva", con)
Dim ds As New DataSet()
da.Fill(ds, "tblProva")
IdTextBox.DataBindings.Add("text", ds, "tblProva.id")
NomeTextBox.DataBindings.Add("text", ds, "tblProva.nome")
' ecc......
Grazie ancora.
Andrea
Perchè mai evitare a tutti i costi di creare una grid ?! Esistono proprio per questo. Se vuoi lavorare con un DataSet, puoi avere un DataGridView principale, e quando l'utente ad esempio fa doppio click su una riga, apri una nuova Form con i dettagli, magari passando l'id ad una nuova query ( campo "id" che puoi includere nella DataGridView principale, ma renderlo nascosto... ).
Oppure se già la grid contiene tutte le informazioni desiderate ( tipo una griglia "clienti" che già contiene tutti i dettagli di ogni cliente, ma per motivi di semplicità ne mostra solo alcuni ) ti basterà caricare nelle text della nuova Form-dettaglio i campi della riga selezionata.
Grazie ancora per la celere risposta ma la GridView non fa proprio al mio caso purtroppo. Il database infatti non contiene informazioni "semplici" di facile editatura ma informazioni più complesse :( Non è un database clienti con codice fattura, codice articolo ecc. E poi la datagrid è scomoda perché permette uno sviluppo solo "orizzontale" e con molti campi diventa scomodo scorrerla tutta.
Se non ci sono proprio altre soluzioni farò il binding "a mano"...
Se no qualunque suggerimento è ben accetto!
Andrea
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.