INSERINDO VARIOS DADOS APARTIR DO DATAGRIDVIEW

DANIROSA 18/05/2014 14:08:08
#438334
Boa tarde colegas!
Por favor to com um problema, tenho uma rotina que faz a inserção de dados em uma tabela sql usando Vb.Net e Linq To Sql, e no botão Gravar do formulario eu chamei a rotina para gravar os dados no banco de dados, o formulario tem um datagridview e so esta a gravar a primeira linha do Datagridview, e eu quero gravar varios registros contidos no datagridview..
O codigo da Rotina para fazer a inserção:

Public Class SubModuloFuncoesGeral
#Region [Ô]Full Table Queries Sub Modulos e Funçoes dos Usuarios[Ô]
[ô]Nesta secção definimos a chamada da tabela
Public Shared Function GetSubModuloFuncaoUsuarioTable() As System.Data.Linq.Table(Of DAL.SubModuloFuncao)
Dim ctxt As New DAL.DANIROSADataContext()
Return ctxt.GetTable(Of DAL.SubModuloFuncao)()
End Function

#End Region
#Region [Ô]Insert Sub Modulo Função Usuario[Ô]
[ô]aqui definimos a rotina para fazer a inserção do SubModulo_Funçaol
Public Sub InsertSubModuloFuncaoUsuario(ByVal codigoSubModulo As Integer,
ByVal codigoFuncãoUsuario As Integer,
ByVal activarInserir As Boolean,
ByVal activarActualizar As Boolean,
ByVal activarEliminar As Boolean,
ByVal activarConsultar As Boolean,
ByVal activarImprimir As Boolean)

Try

Dim submodfunca As Table(Of SubModuloFuncao) = SubModuloFuncoesGeral.GetSubModuloFuncaoUsuarioTable()
Dim sumodfunc As New SubModuloFuncao With {.ID_SUBMODULO = codigoSubModulo,
.CODIGO_FUNCAO_USER = codigoFuncãoUsuario,
.INSERIR = activarInserir,
.ACTUALIZAR = activarActualizar,
.ELIMINAR = activarEliminar,
.CONSULTAR = activarEliminar,
.IMPRIMIR = activarImprimir}

submodfunca.InsertOnSubmit(sumodfunc)
submodfunca.Context.SubmitChanges()
MessageBox.Show([Ô]Registro encluido com sucesso : [Ô], [Ô]Incluir[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception
Throw ex
End Try
End Sub

#End Region

No botão gravar do formulario que contem o Datagridview eu chamo a rotina e fiz assim:

Private Sub ToolStripBtnGuardarSubModuloFuncao_Click(sender As Object, e As EventArgs) Handles ToolStripBtnGuardarSubModuloFuncao.Click

Dim novoSubModuloFuncao As New SubModuloFuncoesGeral
For Each ListaNovo As DataGridViewRow In DGVListaFuncoesUsuarioAgrupamento.Rows
novoSubModuloFuncao.InsertSubModuloFuncaoUsuario(TxtCodigoSubModulo.Text,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(0).Value,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(2).Value,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(3).Value,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(4).Value,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(5).Value,
DGVListaFuncoesUsuarioAgrupamento.CurrentRow.Cells(6).Value)
Next
End Sub
So que ele so grava a primeira linha do datagridview, como faço para ele gravar todos os dados contidos no Datagridview?
Obrigado e aguardo resposta, ajudem por favor...
OMAR2011 18/05/2014 18:54:42
#438338
Resposta escolhida
O seu For Each correto seria este.

For Each ListaNovo As DataGridViewRow In DGVListaFuncoesUsuarioAgrupamento.Rows
novoSubModuloFuncao.InsertSubModuloFuncaoUsuario(TxtCodigoSubModulo.Text,
ListaNovo.Cells(0).Value,
ListaNovo.Cells(2).Value,
ListaNovo.Cells(3).Value,
ListaNovo.Cells(4).Value,
ListaNovo.Cells(5).Value,
ListaNovo.Cells(6).Value)
Next
End Sub
Tópico encerrado , respostas não são mais permitidas