Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cmtavares

UPDATE sql

Recommended Posts

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?

Share this post


Link to post
Share on other 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

  • Vote 1

Share this post


Link to post
Share on other sites
cmtavares

Obrigada desde ja pela iniciativa, mas visto que a minha base de dados está em SQL não se esse codigo dara!

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.