Ir para conteúdo
Fórum Script Brasil
  • 0

Datagrid


SirSmart

Pergunta

Galera alguém poderia me dar uma força.....

Gostaria de saber como eu faço pra fazer um update nos meus dados que estão mostrando no meu datagrid... Estou deixando o cara alterar os registros na tela no meu datagrid, porem não sei como dar um update no banco ...

Como faço isso ???

Obrigado

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Você tem que chamar o método Update do seu DataAdapter para que ele realize as mudanças no banco. Sendo que eu não recomendaria fazer isso ao editar na DataGrid. Isso porque não encontrei um evento que seja executado quando um campo do registro é alterado (no DataGridView, do VS 2005, já existe um evento para isso) e também porque é muito arriscado deixar o usuário mudar os dados ali sem um tratamento prévio (se bem que isso possa ser feito na DataGrid também, mas não é muito simples).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara me de uma idéia então:

Eu estou jogando as informações no grid através de um metodo que eu criei, porem para eu salvar da forma que quero, não consigo, pois não consigo enxergar meu dataset pois ele está em outro método.

Como eu posso fazer isso??

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Como você joga os dados na grid? É através da propriedade DataSource ou pelo método SetDataBinding? Em qualquer um dos dois casos, você tem acesso a sua DataTable (que por sua vez tem a acesso ao respectivo DataSet) ou diretamente ao seu DataSet (vai depender de como você define) através da propriedade DataSource da grade.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

O UpdateCommand no caso é um objeto OleDbCommand contendo a SQL que atualiza a tabela. Você pode tentar utilizar um OledbCommandBuilder para que esta SQL seja gerada automaticamente, mas nem sempre isso é possível. Neste caso, você teria que fazer a SQL manualmente e preencher os parâmetros com os valores dos campos. Mas, aí é que entra aquele problema que eu te disse lá no meu primeiro post, que é não haver um evento para quando o usuário termina de editar uma célula. Entendeu? Como você vai saber quando deve fazer a alteração do registro? A não ser que você tenha um botão ou algo do tipo para que o usuário pressione confirmando a alteração.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - SirSmart -

Na verdade é isso mesmo, eu terei um botão para o usuário clicar depois que fizer a alteração....

Vou fazer na mão mesmo....

Obrigado pelas informações e ajuda

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Se você vai ter um botão para confirmar, então você pode fazer isso aqui:

        Dim dt As DataTable = dg.DataSource

        Dim cmd As New OleDb.OleDbCommand("UPDATE tabela SET Nome=? WHERE Código=?", cn)
        cmd.Parameters.Add("Nome", OleDb.OleDbType.Char)
        cmd.Parameters.Add("Código", OleDb.OleDbType.Integer)

        For Each registro As DataRow In dt.Rows
            If registro.RowState = DataRowState.Modified Then
                cmd.Parameters("Código").Value = registro("Código")
                cmd.Parameters("Nome").Value = registro("Nome")
                cmd.ExecuteNonQuery()
                registro.AcceptChanges()
            End If
        Next

Note que "dg" é a DataGrid. O código acima irá atualizar todos os registros da DataTable que tenham sido modificados. Observe que você vai precisar mudar a SQL e os parâmetros.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...