Questione : Non può fissare la fonte di dati di Datagridview per elencare l'oggetto

Ciao ho un sottoprogramma denominato PopulateBatchLoadDataGridView che voglio usare per popolare un datagridview.  Sto utilizzando lo stesso codice in molte parti della mia applicazione ma ora in questo caso particolare, quando eseguo il codice, solo l'ultima annotazione è caricata nel datagrid ed è caricata due volte.  Così per esempio, qui è tre annotazioni nella tabella di fonte, le ultime annotazioni compare tre volte.  Questa procedura sta denominando una funzione denominata GetTechnologyData che sembra funzionare benissimo.  Non sono sicuro che cosa è on andante class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
>Private notpretty PopulateBatchLoadDataGridView secondario " del class= " del id= " codeSnippet806807 del
 0 allora
            dgvTechnologySets.DataSource = tl
        Altrimenti
            dgvTechnologySets.DataSource = niente
        Concluder se
    Concludere il sommergibile

Funzione comune pubblico GetTechnologyData () come lista (di TechnologySet)
        Techlist fioco come nuova lista (di TechnologySet)
        CnSql fioco come SqlConnection = BadsDB.GetConnection
        cmdA fioco come SqlCommand
        cmdA = nuovo SqlClient.SqlCommand (“up_CompareTechnology„, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Prova
            CnSql.Open ()
            Lettore fioco come SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            T fioca come nuovo TechnologySet
            X fioca come numero intero = 1
            Fare mentre lettore. Leggere
                t.TechnologySetCode = lettore (“TechnologySetCode„) .ToString
                t.TechnologySetName = lettore (“TechnologySetName„) .ToString
                t.TechnologySetType = lettore (“TechnologySetType„) .ToString
                t.Notes = lettore (“note„) .ToString
                techlist. Aggiungere (t)
            Ciclo
            Techlist di ritorno

        excA del fermo come SqlException
            MsgBox (excA.Message)
            Non restituire niente
        Infine
            CnSql.Close ()
        Prova di conclusione
class= del

Risposta : Non può fissare la fonte di dati di Datagridview per elencare l'oggetto

Dovete cambiare il vostro codice come sotto.

Dovete mettere la t fioca come nuovo TechnologySet nel ciclo anziché la parte esterna.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
Funzione comune pubblico GetTechnologyData () come lista (di TechnologySet)
        Techlist fioco come nuova lista (di TechnologySet)
        CnSql fioco come SqlConnection = BadsDB.GetConnection
        cmdA fioco come SqlCommand
        cmdA = nuovo SqlClient.SqlCommand (“up_CompareTechnology„, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Prova
            CnSql.Open ()
            Lettore fioco come SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            
            X fioca come numero intero = 1
            Fare mentre lettore. Leggere
		Oscurare la t come nuovo TechnologySet
                t.TechnologySetCode = lettore (“TechnologySetCode„) .ToString
                t.TechnologySetName = lettore (“TechnologySetName„) .ToString
                t.TechnologySetType = lettore (“TechnologySetType„) .ToString
                t.Notes = lettore (“note„) .ToString
                techlist. Aggiungere (t)
            Ciclo
            Techlist di ritorno

        excA del fermo come SqlException
            MsgBox (excA.Message)
            Non restituire niente
        Infine
            CnSql.Close ()
        Prova di conclusione
Altre soluzioni  
 
programming4us programming4us