Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cmtavares

UPDATE sql

Mensagens Recomendadas

cmtavares

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

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

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.