Pergunta : Não pode ajustar a origem de dados de Datagridview para alistar o objeto

Olá! eu tenho uma sub-rotina chamada PopulateBatchLoadDataGridView que eu quero usar para povoar um datagridview.  Eu tenho usado o mesmo código em muitas partes de minha aplicação mas agora neste caso particular, quando eu executo o código, simplesmente o último registro está carregado no datagrid e é carregado duas vezes.  Tão por exemplo, é aqui três registros na tabela da fonte, os últimos registros aparece três vezes.  Esta rotina está chamando uma função chamada GetTechnologyData que parece trabalhar muito bem.  Eu não sou certo o que é on indo class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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 secundário " do class= " do id= " codeSnippet806807 do
 0 então
            dgvTechnologySets.DataSource = tl
        Mais
            dgvTechnologySets.DataSource = nada
        Terminar se
    Terminar o submarino

Função compartilhada público GetTechnologyData () como a lista (de TechnologySet)
        Techlist não ofuscante como a lista nova (de TechnologySet)
        CnSql não ofuscante como SqlConnection = BadsDB.GetConnection
        cmdA não ofuscante como SqlCommand
        cmdA = SqlClient.SqlCommand novo (“up_CompareTechnology”, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Tentativa
            CnSql.Open ()
            Leitor não ofuscante como SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            T não ofuscante como TechnologySet novo
            X não ofuscante como o inteiro = 1
            Fazer quando leitor. Ler
                t.TechnologySetCode = leitor (“TechnologySetCode”) .ToString
                t.TechnologySetName = leitor (“TechnologySetName”) .ToString
                t.TechnologySetType = leitor (“TechnologySetType”) .ToString
                t.Notes = leitor (“notas”) .ToString
                techlist. Adicionar (t)
            Laço
            Techlist do retorno

        excA do prendedor como SqlException
            MsgBox (excA.Message)
            Não retornar nada
        Finalmente
            CnSql.Close ()
        Tentativa do fim
class= do

Resposta : Não pode ajustar a origem de dados de Datagridview para alistar o objeto

Você precisa de mudar seu código como abaixo.

Você precisa de põr t não ofuscante como TechnologySet novo no laço em vez da parte externa.
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:
Função compartilhada público GetTechnologyData () como a lista (de TechnologySet)
        Techlist não ofuscante como a lista nova (de TechnologySet)
        CnSql não ofuscante como SqlConnection = BadsDB.GetConnection
        cmdA não ofuscante como SqlCommand
        cmdA = SqlClient.SqlCommand novo (“up_CompareTechnology”, CnSql)
        cmdA.CommandType = CommandType.StoredProcedure
        Tentativa
            CnSql.Open ()
            Leitor não ofuscante como SqlDataReader = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
            
            X não ofuscante como o inteiro = 1
            Fazer quando leitor. Ler
		Escurecer t como TechnologySet novo
                t.TechnologySetCode = leitor (“TechnologySetCode”) .ToString
                t.TechnologySetName = leitor (“TechnologySetName”) .ToString
                t.TechnologySetType = leitor (“TechnologySetType”) .ToString
                t.Notes = leitor (“notas”) .ToString
                techlist. Adicionar (t)
            Laço
            Techlist do retorno

        excA do prendedor como SqlException
            MsgBox (excA.Message)
            Não retornar nada
        Finalmente
            CnSql.Close ()
        Tentativa do fim
Outras soluções  
 
programming4us programming4us