Frage : Kann Datagridview Datenquelle nicht einstellen, um Gegenstand zu verzeichnen

Hallo habe ich eine Subroutine, die PopulateBatchLoadDataGridView genannt, das ich verwenden möchte, um ein datagridview zu bevölkern.  Ich verwendet den gleichen Code in vielen Teilen meiner Anwendung aber jetzt in diesem besonderen Fall, wenn ich den Code durchführe, nur die letzte Aufzeichnung in das datagrid geladen und sie geladen zweimal.  So zum Beispiel, ist es hier drei Aufzeichnungen in der Quelltabelle, die letzten Aufzeichnungen erscheint dreimal.  Dieses Programm nennt eine Funktion genannt GetTechnologyData, das scheint, zu sein.  Ich bin nicht sicher, was gehendes on ist
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 VorPopulateBatchLoadDataGridView ()
        Schwaches Zeitlimit als neues SortableBindingList (von TechnologySet) (TechnologySetDB.GetTechnologyData)
        Wenn Zeitlimit. Zählimpuls > 0 dann
            dgvTechnologySets.DataSource = Zeitlimit
        Sonst
            dgvTechnologySets.DataSource = nichts
        Beenden wenn
    Unterseeboot beenden

Öffentlichkeit geteilte Funktion GetTechnologyData () als Liste (von TechnologySet)
        Schwaches techlist als neue Liste (von TechnologySet)
        Schwaches CnSql als SqlConnection = BadsDB.GetConnection
        Schwaches cmdA als SqlCommand
        cmdA = neues SqlClient.SqlCommand („up_CompareTechnology“, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Versuch
            CnSql.Open ()
            Schwacher Leser als SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            Schwaches t als neues TechnologySet
            Schwaches x als ganze Zahl = 1
            Tun während Leser. Lesen
                t.TechnologySetCode = Leser („TechnologySetCode“) .ToString
                t.TechnologySetName = Leser („TechnologySetName“) .ToString
                t.TechnologySetType = Leser („TechnologySetType“) .ToString
                t.Notes = Leser („Anmerkungen“) .ToString
                techlist. Hinzufügen (t)
            Schleife
            Rückholtechlist

        Fang excA als SqlException
            MsgBox (excA.Message)
            Nichts zurückbringen
        Schließlich
            CnSql.Close ()
        Enden-Versuch

Antwort : Kann Datagridview Datenquelle nicht einstellen, um Gegenstand zu verzeichnen

Sie müssen Ihren Code als unten ändern.

Sie müssen schwaches t als neues TechnologySet in der Schleife anstelle von der Außenseite setzen.
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:
Öffentlichkeit geteilte Funktion GetTechnologyData () als Liste (von TechnologySet)
        Schwaches techlist als neue Liste (von TechnologySet)
        Schwaches CnSql als SqlConnection = BadsDB.GetConnection
        Schwaches cmdA als SqlCommand
        cmdA = neues SqlClient.SqlCommand („up_CompareTechnology“, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Versuch
            CnSql.Open ()
            Schwacher Leser als SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            
            Schwaches x als ganze Zahl = 1
            Tun während Leser. Lesen
		T als neues TechnologySet verdunkeln
                t.TechnologySetCode = Leser („TechnologySetCode“) .ToString
                t.TechnologySetName = Leser („TechnologySetName“) .ToString
                t.TechnologySetType = Leser („TechnologySetType“) .ToString
                t.Notes = Leser („Anmerkungen“) .ToString
                techlist. Hinzufügen (t)
            Schleife
            Rückholtechlist

        Fang excA als SqlException
            MsgBox (excA.Message)
            Nichts zurückbringen
        Schließlich
            CnSql.Close ()
        Enden-Versuch
Weitere Lösungen  
 
programming4us programming4us