DataGridView e relazioni 1:N

mercoledì 25 marzo 2009 - 22.22

cesconix Profilo | Junior Member

Su Origini dati ho creato un dataset includendo la mia tabella Utenti tramite wizard. Trascinando quindi il dataset da Origini dati al mio form, mi crea automaticamente: utentiBindingSource, utentiTableAdapter, utentiBindingNavigator e utentiDataset. Fin qui è ok, mi genera nel form il DataGridView popolato dai record della mia tabella Utenti.
Il mio problema è che tra i campi della tabella Utenti c'è ne uno che indica l'id della sua struttura (un'altra tabella nel db) perchè ogni utente ha la sua struttura e quindi ho una relazione 1 a N tra Utenti e Strutture. Smanettando un pò ho notato che si può cambiare nel DataGridView la proprietà ColumnType in DataGridViewCommboBoxColumn e di conseguenza ho messo queste proprietà per popolare la combobox:

DataPropertyName: id_struttura (sarebbe la chiave primaria della tabella Strutture)
DataSource: struttureBindingSource
DisplayMember: nome (è uno dei campi della tabella Strutture)
ValueMember: id_struttura (sarebbe la chiave primaria della tabella Strutture)

Fatto questo funziona tutto. Nel datagridview adesso mi visualizza i nomi delle strutture nella combobox e nella insert nel db gli mette l'id_struttura. Perfetto!

La mia domanda è: c'è una procedura che capisce le relazioni e mi crea le combobox automaticamente? Io non ho creato relazioni, non so nemmeno come poterle fare funzionare.

L'altro mio problema: nella solita tabella Utenti, c'è un campo "Tipo" che può contenere come valore stringa o "Amministratore" o "Operatore". Quindi, come per il campo id_struttura, ho cambiato nel DataGridView la proprietà ColumnType in DataGridViewCommboBoxColumn e come Items ho inserito le due stringhe. Il problema adesso è: dovrei fare in modo che se l'utente ha selezionato nella combobox la voce "Amministratore", il campo id_struttura diventa superfluo e dovrei disabilitarlo. Come potrei fare?

Un altro problema ancora: come posso inserire l'errorProvider nelle celle del DataGridView? Purtroppo se non faccio qualcosa mi genera degli errori di validazione (ad es. quando alcuni campi obbligatori li lascio vuoti) che sono terrificanti... sembrano errori di sistema con quei messagebox con l'icona rossa!

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5