DataGridViewComboBoxColumn Problema

venerdì 22 febbraio 2008 - 11.08

Andrea.NET Profilo | Newbie

Rgazzi conoscete la combo box per la datagrid??? Figa vero am c'è un problema.

Creo la colonna, la imposto e la addo al DataGrid

colonnaCombo = New DataGridViewComboBoxColumn
colonnaCombo.DataPropertyName = "Id_Imposta"
colonnaCombo.HeaderText = "Imposta"
colonnaCombo.Width = 90
colonnaCombo.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
colonnaCombo.DataSource = dsImposte.Tables("tabella_imposte")
colonnaCombo.ValueMember = "Id_Imposta"
colonnaCombo.DisplayMember = "Percentuale"

Questa combo visualizza la percentuale Iva ma durante il salvataggio in tabella memorizza il valore di "Id_Imposta". fin qui normale.
Ma cosa accade se nell'elenco percentuali ho due percentuali uguali??? Succede che mi ritorna sempre l'Id_Imposta della prima percentuale uguale e non quello corretto.

Esempio
20% -> Id = 3
40% -> Id = 4
20% -> Id = 5

se seleziono il 3 elemento mi ritorna 3 come valore da memorizzare e non 5..!!!!!

Qualcuno potrebbe aiutarmi ?????

Teech Profilo | Expert

Onestamente mi pare che l'errore sia nel fatto che ci sono 2 record uguali... Non dovrebbe essere così perchè si perdono la caratteristica principale del DB relazionale (ed il DataSet nel percorre i principi): NON duplicare i dati per non renderli ridondanti...

Perchè hai 2 righe uguali? Cos'hanno di diverso per distinguerle?
Se risolvi questa "anomalia" risolvi anche il problema della Combo...

Non so "dietro le quinte" come la Combo effettua il Binding sul DataSet ma probabilmente fa una lettura sequenziale o una SELECT TOP sul DataSet per identificare il record scelto (detto molto in soldoni)...

Ciao!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

Andrea.NET Profilo | Newbie

Si ho risolto sostituendo il campo da "Percentuale" a "Codice" visto che è unico, così funziona perfettamente.
Anche se torno a dire che è molto strana sta cosa, mha.
cmq Grazie tanto
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5