cmtavares Posted April 9, 2013 at 11:52 PM Report #502444 Posted April 9, 2013 at 11:52 PM Boas pessoal, o meu problema e o seguinte: tenho uma datagridview dentro de um PANEL cujo esse mesmo panel esta inserido numa usercontrol. o objetivo e ao selecionar um cliente para ser editado abrir uma nova form com os dados do mesmo mas não sei como fazer! Alguem me consegue ajudar?
acao Posted April 10, 2013 at 09:02 AM Report #502458 Posted April 10, 2013 at 09:02 AM boas está a postar no sitio errado deveria ser em net, mas alguém se encarregará de o passar para lá. deixo aqui um exemplo completo, mas á outras maneiras de o resolver. pesquisar os dados para actualizar: Imports System.Data Imports System.Data.OleDb Public Class frmPesqCadaViatura Dim vPesqCadViat As Integer Private Sub frmPesqCadaViatura_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress If e.KeyChar = Convert.ToChar(13) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub grdPesqCadViat_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles grdPesqCadViat.CellMouseClick If (e.RowIndex) > -1 Then If vPesqCadViat > 0 Then vInclusaoCadViaturas = False vcodIDViatura = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(0).Value.ToString frmCadViatura.mskMatriculaCadViatura.Text = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(1).Value.ToString() VMatriculaCadViatgrid = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(1).Value.ToString() frmCadViatura.cboCategoriaViat.Text = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(2).Value.ToString() frmCadViatura.txtMarcaViat.Text = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(3).Value.ToString() frmCadViatura.txtModeloViat.Text = Me.grdPesqCadViat.Rows(e.RowIndex).Cells(4).Value.ToString() Me.Close() Me.Dispose() frmCadViatura.cmdGravar.Visible = False frmCadViatura.ToolStripButton1.Enabled = False frmCadViatura.CmdPesqRegisto.Visible = False frmCadViatura.cmdEliminar.Visible = True frmCadViatura.cmdActualizar.Visible = True frmcadTelefone.ToolStripButton3.Enabled = True End If End If End Sub Private Sub mskMatriculaPesqCadViat_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mskMatriculaPesqCadViat.TextChanged If mskMatriculaPesqCadViat.Text <> " - -" Then Dim queryPesqMskViat As String Dim ConnectionStringPesqMskViat As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\BaseDados\ControleViaturas.accdb;Jet OLEDB:Database Password= " & vCodDB & ";") queryPesqMskViat = "SELECT * FROM Viaturas Where MatriculaViatura Like '%" & mskMatriculaPesqCadViat.Text.Replace(" ", "%") & "%' and ViatDesactivadaSim = False order by matriculaViatura ; " Dim DataAdapterPesqMskViat As New OleDbDataAdapter(queryPesqMskViat, ConnectionStringPesqMskViat) Dim MyDataPesqMskViat As New DataSet Try DataAdapterPesqMskViat.Fill(MyDataPesqMskViat, "Viaturas") vPesqCadViat = MyDataPesqMskViat.Tables("Viaturas").Rows.Count() Me.grdPesqCadViat.DataSource = MyDataPesqMskViat.Tables("Viaturas") Me.grdPesqCadViat.Columns(0).Visible = False Me.grdPesqCadViat.Columns(1).Width = 250 Me.grdPesqCadViat.Columns(1).HeaderText = "Matrícula da viatura" Me.grdPesqCadViat.Columns(2).Width = 290 Me.grdPesqCadViat.Columns(2).HeaderText = "Categoria da viatura" Me.grdPesqCadViat.Columns(3).Width = 250 Me.grdPesqCadViat.Columns(3).HeaderText = "Marca da viatura" Me.grdPesqCadViat.Columns(4).Width = 250 Me.grdPesqCadViat.Columns(4).HeaderText = "Modelo da viatura" Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try DataAdapterPesqMskViat = Nothing ConnectionStringPesqMskViat.Close() ConnectionStringPesqMskViat = Nothing End If End Sub Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click Me.Close() Me.Dispose() End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click mskMatriculaPesqCadViat.Text = "" grdPesqCadViat.DataSource = Nothing End Sub Private Sub cmdTodos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTodos.Click mskMatriculaPesqCadViat.Text = "" Dim queryPesqMskViat As String Dim ConnectionStringPesqMskViat As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\BaseDados\ControleViaturas.accdb;Jet OLEDB:Database Password= " & vCodDB & ";") queryPesqMskViat = "SELECT * FROM Viaturas where ViatDesactivadaSim = False order bY MatriculaViatura; " Dim DataAdapterPesqMskViat As New OleDbDataAdapter(queryPesqMskViat, ConnectionStringPesqMskViat) Dim MyDataPesqMskViat As New DataSet Try DataAdapterPesqMskViat.Fill(MyDataPesqMskViat, "Viaturas") vPesqCadViat = MyDataPesqMskViat.Tables("Viaturas").Rows.Count() Me.grdPesqCadViat.DataSource = MyDataPesqMskViat.Tables("Viaturas") Me.grdPesqCadViat.Columns(0).Visible = False Me.grdPesqCadViat.Columns(1).Width = 250 Me.grdPesqCadViat.Columns(1).HeaderText = "Matrícula da viatura" Me.grdPesqCadViat.Columns(2).Width = 290 Me.grdPesqCadViat.Columns(2).HeaderText = "Categoria da viatura" Me.grdPesqCadViat.Columns(3).Width = 250 Me.grdPesqCadViat.Columns(3).HeaderText = "Marca da viatura" Me.grdPesqCadViat.Columns(4).Width = 250 Me.grdPesqCadViat.Columns(4).HeaderText = "Modelo da viatura" Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try DataAdapterPesqMskViat = Nothing ConnectionStringPesqMskViat.Close() ConnectionStringPesqMskViat = Nothing End Sub End Class Public Sub actualizarDados() Dim conexaoActualizaViat As New OleDb.OleDbConnection Dim comandoActualizaViat As New OleDb.OleDbCommand Try conexaoActualizaViat = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\BaseDados\ControleViaturas.accdb;Jet OLEDB:Database Password= " & vCodDB & ";") conexaoActualizaViat.Open() comandoActualizaViat = New OleDbCommand("UPDATE Viaturas SET MatriculaViatura = '" & mskMatriculaCadViatura.Text & _ "', CategoriaViatura = '" & cboCategoriaViat.Text & _ "', MarcaViatura = '" & txtMarcaViat.Text & _ "', ModeloViatura = '" & txtModeloViat.Text & _ "' WHERE IDViatura = " & vcodIDViatura & "", conexaoActualizaViat) Dim vCadTelActualizaViat As Integer = comandoActualizaViat.ExecuteNonQuery() If vCadTelActualizaViat < 1 Then MsgBox("O registo não foi actualizado") Else MsgBox("Actualização efectuada com sucesso") Call LimparDados() mskMatriculaCadViatura.Focus() End If Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try comandoActualizaViat = Nothing conexaoActualizaViat.Close() conexaoActualizaViat = Nothing End Sub boas é apenas isto. no evento grdPesqCadViat_CellMouseClick carrego os campos do form cadastro que podem ser actualizados e depois com o botao de actualização actualizo a basedados. cumps acao 1 Report
cmtavares Posted April 11, 2013 at 11:52 PM Author Report #502892 Posted April 11, 2013 at 11:52 PM Obrigada desde ja pela iniciativa, mas visto que a minha base de dados está em SQL não se esse codigo dara!
NunoDinis Posted April 12, 2013 at 08:08 AM Report #502908 Posted April 12, 2013 at 08:08 AM A lógica está lá.. basicamente só terás que alterar as conexões para SQL. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
acao Posted April 12, 2013 at 11:03 AM Report #502934 Posted April 12, 2013 at 11:03 AM boas aqui: https://wiki.portugal-a-programar.pt/dev_net/vb.net/inserirdadossql/ cumps acao
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now