DATAGRIDVIEW

JABA 06/03/2012 16:16:40
#396550
Criei um projeto aqui de exemplo para você.
Preencha os campos e depois pressione Enter. Depois de adicionar o registro, o evento RowAdd será ativado, lá eu capturo o registro e mostro numa mensagem.
Você só precisará adaptar para o que você precisa.
qualquer dúvida posta aqui.

obs: estou utilizando a versão 2010 do visual studio.

vlw
FELIPEDRONI 07/03/2012 14:42:51
#396623
Hey JABA boa tarde, cara baixei seu projto e testei, ele funciona(é claro) mas não esta na linha
do que estou tentando, ou sou muito juvenil e não consegui transformar no que eu quero realmente...
Imagine o seguinte eu tenho um datagrid(id,nome,numero) já alimentado pelo banco(ou seja, um grid com n registros)
ao fim do grid existe uma linha em branco, nesta linha em branco eu digito id 12000 nome Teste e Numero 13, quando
eu terminar de digitar o numero e sair desta linha, ele já add esse novo registro no banco...é isto que estou tentando fazer.
meu caro JABA caso oque vc me mandou seja o necessário para fazer isso por favor me fale, eu também não sei se isso
é possível no datagridview pois vi isso funcionando apenas no access.
Mais uma vez obrigado JABA...
JABA 07/03/2012 20:40:35
#396638
cara, fiz algo aqui. Não está dá maneira mais correta pois teria que verificar o que é atualização de inserção nos registros, mas creio que vai te ajudar. Tente adaptar ai para o que voce precisa.

criei um BD de exemplo e joguei na pasta bin do projeto.

vlw
JABA 08/03/2012 17:22:51
#396714
dei uma melhorada aqui. só falta fazer mesmo aparecer o id na hora de incluir ou atualizar, mas no restante está legal.

dá uma testada ai e me dá um retorno se funcionou.

vlw
FELIPEDRONI 09/03/2012 10:55:38
#396784
Cara vc acerto na lata, ficou perfeito, muito obrigado pela sua ajuda e atenção.
Pode ficar tranquilo vou positivar vc, cara perfeito mesmo...vc não é o JABA vc é um JED...hgauhauhua
Para quem quiser ver o código fica disponível ae:

Imports System.Data.SqlClient
Imports System.Data

Public Class frmPrincipal

Dim strConexao As String = [Ô]Data Source=.\SQLEXPRESS;AttachDbFilename=[Ô] & Environment.CurrentDirectory & [Ô]\grid.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True[Ô]
Dim isNovo As Boolean = False

Private Sub frmPrincipal_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
grid1.Columns.Add([Ô]colId[Ô], [Ô]Id[Ô])
grid1.Columns.Add([Ô]colNome[Ô], [Ô]Nome[Ô])
grid1.Columns.Add([Ô]colNumero[Ô], [Ô]Numero[Ô])
grid1.Columns(0).ReadOnly = False
preencherDados(grid1)
End Sub

Public Sub adicionar(nome As String, numero As Integer)
Dim conexao As SqlConnection = New SqlConnection(strConexao)
Dim Comando As SqlCommand = New SqlCommand([Ô]INSERT INTO Teste(Nome, Numero) Values ([ô][Ô] & nome & [Ô][ô],[ô][Ô] & numero & [Ô][ô])[Ô], conexao)
Try
conexao.Open()
Comando.ExecuteNonQuery()
conexao.Close()
Catch ex As SqlException
MsgBox(ex.Message)
End Try

End Sub

Public Sub atualizar(id As Integer, nome As String, numero As Integer)
Dim conexao As SqlConnection = New SqlConnection(strConexao)
Dim Comando As SqlCommand = New SqlCommand([Ô]UPDATE Teste Set Nome = [ô][Ô] & nome & [Ô][ô], Numero = [ô][Ô] & numero & [Ô][ô] WHERE id = [Ô] & id, conexao)
Try
conexao.Open()
Comando.ExecuteNonQuery()
conexao.Close()
Catch ex As SqlException
MsgBox(ex.Message)
End Try

End Sub

Public Sub preencherDados(grid As DataGridView)

Dim conexao As SqlConnection = New SqlConnection(strConexao)
Dim comando As SqlCommand = New SqlCommand([Ô]SELECT * FROM Teste[Ô], conexao)
Dim dr As SqlDataReader

Try
conexao.Open()
dr = comando.ExecuteReader
Do While dr.Read
grid1.Rows.Add(dr(0).ToString, dr(1).ToString, dr(2).ToString)
Loop
dr.Close()
conexao.Close()
Catch ex As SqlException
MsgBox(ex.Message)
End Try
End Sub

Private Sub grid1_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles grid1.CellBeginEdit
If grid1.CurrentRow.IsNewRow Then
isNovo = True
End If
End Sub

Private Sub grid1_RowValidated(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grid1.RowValidated
isNovo = False
End Sub

Private Sub grid1_RowValidating(sender As Object, e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles grid1.RowValidating
If grid1.IsCurrentRowDirty Then
grid1.CommitEdit(DataGridViewDataErrorContexts.Commit)
If isNovo = True Then
adicionar(grid1.Rows(e.RowIndex).Cells([Ô]colNome[Ô]).Value, grid1.Rows(e.RowIndex).Cells([Ô]colNumero[Ô]).Value)
Else
atualizar(grid1.Rows(e.RowIndex).Cells([Ô]colId[Ô]).Value, grid1.Rows(e.RowIndex).Cells([Ô]colNome[Ô]).Value, grid1.Rows(e.RowIndex).Cells([Ô]colNumero[Ô]).Value)
End If
End If
End Sub

Public Sub removeRows(grid As DataGridView)
If grid1.Rows.Count > 0 Then
For Each dr As DataGridViewRow In grid.Rows
If Not dr.IsNewRow Then grid.Rows.Remove(dr)
Next
End If
End Sub


End Class
Página 2 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas