none
Insert com Grid ou Data Table RRS feed

  • Pergunta

  • Ola,

    Estou fazendo um sistema de biblioteca para o meu estágio, e estou usando um datarow e um datatable para gerar um carrinho de empréstimos e mostrar os dados em um grid.

    So que nao estou conseguindo gravar os itens do carrinho em uma tabela do meu banco de dados.

    Vou postar o codigo abaixo, mas o que quero, e que tenha um botao fora do grid titulado "Gravar Dados", e esse sim dispara um evento para gravar no banco os dados contidos no grid, ou no datatable.

    Os campos do grid são templatescolluns.

    Alguem poderia me ajudar como faço para percorrer os dados do grid, ou do datatable e gravar no banco?

    No aguardo,

     

        Function CriaCarrinhoDeLivros()

            objDT = New DataTable("Carrinho")

            objDT.Columns.Add("Codigo", GetType(Integer))

            objDT.Columns("Codigo").AutoIncrement = True

            objDT.Columns("Codigo").AutoIncrementSeed = 1

            objDT.Columns.Add("Cod_Leitor", GetType(Integer))

            objDT.Columns.Add("Cod_Livro", GetType(Integer))

            objDT.Columns.Add("Nome_Livro", GetType(String))

            objDT.Columns.Add("Data_Emprestimo", GetType(Date))

            objDT.Columns.Add("Data_Devolucao", GetType(Date))

            Session("Carrinho") = objDT

        End Function

     

     

        Sub IncluirNoCarrinho()

     

            objDT = Session("Carrinho")

     

            objDR = objDT.NewRow

            objDR("Cod_Leitor") = txtcodigoleitor.Text

            objDR("Cod_Livro") = txtcodigolivro.Text

            objDR("Nome_Livro") = txtnomelivro.Text

            objDR("Data_Emprestimo") = txtdataemprestimo.Text

            objDR("Data_Devolucao") = txtdatadevolucao.Text

            objDT.Rows.Add(objDR)

     

            Session("Carrinho") = objDT

            gridcarrinho.DataSource = objDT

            gridcarrinho.DataBind()

     

        End Sub

     

        Sub excluiiten(ByVal s As Object, ByVal e As GridViewDeleteEventArgs)

            objDT = Session("Carrinho")

            objDT.Rows(e.RowIndex).Delete()

            Session("Carrinho") = objDT

            gridcarrinho.DataSource = objDT

            gridcarrinho.DataBind()

        End Sub

     

    sub gravar()

    --> Aqui que preciso disparar o evento para gravar os dados contidos no grid ou no datatable.

    end sub

    terça-feira, 6 de fevereiro de 2007 15:32

Todas as Respostas

  • Ola Joviano,

    Porque não cria um DataAdapter e mapeie as colunas do seu DataTable para as colunas da sua DB.
    terça-feira, 6 de fevereiro de 2007 15:47
    Moderador
  • Mas como faria?

    Atribuiria a o datatable ao dataadapter?

    terça-feira, 6 de fevereiro de 2007 15:54
  • Ola Joviano,

    Quando você cria um DataAdapter você consegue mapear as colunas da sua DB para o seu DataTable.

    Depois disso, quando chamar o evento Update do seu DataAdapter, automaticamente, todas as alterações serão efetuadas dentro da sua DB.
    terça-feira, 6 de fevereiro de 2007 16:51
    Moderador
  • Desculpa, mas acho que nao estou entendendo.

    Pois para gerar o dataadapter, necessita de um select nos dados que tenho, certo?

    So que nao tenho nenhum dado na tabela emprestimos, os dados serão inseridos somente depois de clicar em gravar.

    Penso que eu deveria percorrer o grid para isso e pegar os valores dos campos.

    Voce teria algum exemplo de como usar o dataadapter no meu codigo acima?

    terça-feira, 6 de fevereiro de 2007 16:56