Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

d_albino

DataGridView não traz registro solicitado

Recommended Posts

Bom dia!

 

Estou com o seguinte problema ao carregar o registro selecionado: Quando a Grid carrega e eu seleciono, ela leva para um form e eu consigo atualizar perfeitamente, porém, ao fechar o form e repetir a operação, ele traz o primeiro registro do banco, independente dele atender os requisitos solicitados

 

Segue código:

Public Class Form3

    Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PCarregaDados()
    End Sub


    Private Sub PCarregaDados()
        Using con As SqlConnection = GetConnection()
            Try
                con.Open()
                Dim sql As String = "SELECT idchamado, tiposolicitacao, nomefuncionario,nomesetor,descricaochamado, dataabertura, chamadoencerrado, dataencerramento, meiosolicitacao, logincriador FROM TblChamado INNER JOIN TblSetor nomesetor on (idsetor = setorfuncionario) INNER JOIN TblSolicitacao tiposolicitacao on (idsolicitacao = solicitacaotipo) INNER JOIN TblViaSolicitacao meiosolicitacao on (idmeiosolicitacao = solicitacaomeio) WHERE (TblChamado.chamadoencerrado = 0)"
                'Dim sql As String = "SELECT * FROM TblChamado"
                Dim cmd As SqlCommand = New SqlCommand(sql, con)
                Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)
                dgvChamados.DataSource = dt
                'dgvChamados.AllowUserToResizeColumns = False
                'dgvChamados.MultiSelect = False
                'dgvChamados.Columns.Item(0).HeaderText = "Chamado Nº"
                'dgvChamados.Columns.Item(0).AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader
                'dgvChamados.Columns.Item(1).HeaderText = "Tipo da Solicitação"
                'dgvChamados.Columns.Item(1).Width = 250
                'dgvChamados.Columns.Item(2).HeaderText = "Func.Solicitante"
                'dgvChamados.Columns.Item(3).HeaderText = "Setor Solicitante"
                'dgvChamados.Columns.Item(3).Width = 200
                'dgvChamados.Columns.Item(4).HeaderText = "Descrição do Chamado "
                'dgvChamados.Columns.Item(4).Width = 200
                'dgvChamados.Columns.Item(5).HeaderText = "Data de Abertura"
                'dgvChamados.Columns.Item(5).Width = 160
                'dgvChamados.Columns.Item(6).HeaderText = "Encerrado"
                'dgvChamados.Columns.Item(6).Visible = False
                'dgvChamados.Columns.Item(7).HeaderText = "Data de Encerramento"
                'dgvChamados.Columns.Item(7).Visible = False
                'dgvChamados.Columns.Item(8).HeaderText = "Forma de Solicitação"
                'dgvChamados.Columns.Item(8).Visible = False
                'dgvChamados.Columns.Item(9).HeaderText = "Login Criador"
                'dgvChamados.Columns.Item(9).Visible = False
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                con.Close()
            End Try
        End Using
    End Sub
    Private Sub PListaChamados()
        intIdChamado = dgvChamados.CurrentRow().Cells(0).Value
        intSoltipo = dgvChamados.CurrentRow().Cells(1).Value
        strNomefunc = dgvChamados.CurrentRow().Cells(2).Value
        intSetor = dgvChamados.CurrentRow().Cells(3).Value
        strDescricao = dgvChamados.CurrentRow().Cells(4).Value
        datAbrechamado = dgvChamados.CurrentRow().Cells(5).Value
        booChamadoEnc = dgvChamados.CurrentRow().Cells(6).Value
        datEncChamado = dgvChamados.CurrentRow().Cells(7).Value
        intSolmeio = dgvChamados.CurrentRow().Cells(8).Value
        strLogcriador = dgvChamados.CurrentRow().Cells(9).Value
        Form4.ShowDialog()
        PCarregaDados()
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


    End Sub


    Private Sub dgvChamados_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvChamados.CellMouseDoubleClick
        'Form4.CmbSolicitacaoTipo.Enabled = False
        'Form4.TxtNomeFuncionario.Enabled = False
        'Form4.CmbSetorFuncionario.Enabled = False
        'Form4.MskDataAbertura.Enabled = False
        'Form4.CmbSolicitacaoMeio.Enabled = False
        'Form4.BtnAdNovo.Enabled = False
        'Form4.BtnExcluir.Enabled = False
        'Form4.BtnSalvar.Enabled = False
        PListaChamados()
    End Sub
End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Estevão Alves Avelino
      Estou com duvidas de como pegar os dados digitados no DataGridView e jogar dentro de variáveis, se alguém souber uma maneira de fazer isso ficarei muito grato!
    • Por drapn
      Boa tarde pessoal
      Estou com um projeto em Vb.Net que consiste em importar dados de uma planilha de Excel para um Datagridview.
      O projeto esta funcionando tudo ok porem notei que quando vou movendo as barras laterais e inferiores o formulário apresenta grande lentidão para mover as colunas etc...
      Fiz o teste criando um projeto novo com somente 1 Form, 1 Datagrid e 1Botão e os códigos para fazer a importação e quando eu "populo" o datagridview com o conteudo ele apresenta esses legs.
       
      Alguem a ja passou por isso?
      Será que é configuração da máquina? (Não é uma máquina tão fraca)
      O Vb.NET é a versão 2015
       
       
      Os arquivos de Excel variam de 80 Linhas por 5 Colunas á 400 linhas e 5 colunas
       
      O código é esse:
       
      Sub ImportaEstoque()         Dim Local         Local = EndArquivo()         If String.IsNullOrWhiteSpace(Local) Then             MessageBox.Show("Nenhum arquivo foi selecionado.", "Informação.", MessageBoxButtons.OK, MessageBoxIcon.Information)             Return         End If         '------------------------------         Dim caminhoArquivoExcel As String = Local         Dim nomePlanilhaExcel As String = "ESTQ" & "$"         Dim conexaoOleDb As OleDbConnection = Nothing         Dim ds As DataSet         Dim cmd As OleDbDataAdapter         '------------------------------         Try             'conexaoOleDb = New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Local & ";Extended Properties=Excel 8.0;")             conexaoOleDb = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & Local & ";Extended Properties='Excel 8.0;HDR=Yes'")             'cmd = New OleDbDataAdapter("Select * from [" & nomePlanilhaExcel & "]", conexaoOleDb)             cmd = New OleDbDataAdapter("Select * from [" & nomePlanilhaExcel & "]  Where UM Like '%" & "PC" & "%'", conexaoOleDb)             cmd.TableMappings.Add("Table", "tabelaExcel")             ds = New DataSet             cmd.Fill(ds)             dgvDados.DataSource = ds.Tables(0)         Catch ex As Exception             MessageBox.Show(ex.ToString, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)         Finally             conexaoOleDb.Close()         End Try         sbQtdItens.Text = "Encontrados " & dgvDados.RowCount.ToString & " itens."     End Sub  
       
       
      Pessoal desde já muito obrigado pela força!
    • Por giullyanny
      Estou adicionando um dados em um DataGridView e está funcionando bem, mas qdo eu removo uma linha(em qualquer linha), os dados que sobram a ultima linha some, mas ela continua adicionada no DataGridView, tanto que qdo eu adiciono novamente ele preenche normalmente com a ultima linha.
      Veja as telas para entender melhor:
         
      pode se perceber que a ultima linha a qual não removi sumiu junto com a que eu removi
         
      Uma coisa que percebi e que qdo eu uso o refresh() no DataGridView ele some a ultima linha e quando eu uso um método para preencher o DataGridView ele pula o primeiro, mas debugando eu percebi que ele entra e adiciona se qualquer erro veja como estou add:
         
    • Por eduardohaag
      Olá, sou autodidata e amador na área da programação, muito do que sei, é feito pelo modo feito na raça com linhas e linhas de códigos.
      Hoje trabalhando em um novo projeto me deparei com uma situação que nunca me ocorreu, imprimir um relatório.
      No meu projeto tenho um form onde possui um datagridview onde é apresentada uma lista de produtos e alguns textbox que permite eu filtrar os dados apresentados, esse filtro é realizado utilizando comando direto na query, ou seja pra cada caso tenho uma query diferente.
      Até ai  tudo bem, o problema que agora preciso imprimir os dados que tenho no datagridview, e não tenho a menor ideia de como fazer isso.
      Alguém saberia me dizer como posso fazer? 
    • Por João Fernandes dos Santos
      Pessoal, boa tarde.
       
      Estou com o seguinte problema eu carrego meu datagridview através do código que irei postar abaixo, porém no datagridview esta me retornando um registro em branco, ou seja, o último registro dele ele traz um registro vazio, e isso esta dando erro em minha aplicação caso o usuário escolha essa linha.
       
      Como posso fazer para eliminar essa linha, o porque ele traz essa ultima linha em branco?
      Protected Sub CarregaGrid(strsql As String) ' Vincula o DataGridView ao BindingSource e carrega os dados do banco de dados Me.DataGridView1.DataSource = Me.BindingSource1 exibeDados(strsql) Me.DataGridView1.DefaultCellStyle.SelectionForeColor = Color.Yellow Me.DataGridView1.DefaultCellStyle.SelectionBackColor = Color.Blue Me.DataGridView1.Columns(3).Visible = False Me.DataGridView1.Columns(6).Visible = False Me.DataGridView1.Columns(7).Visible = False End Sub Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged RowSelecionada = DataGridView1.CurrentRow.Index End Sub Private Sub exibeDados(ByVal selectCommand As String) Dim dataAdapter As New SqlDataAdapter(selectCommand, SCLConnectionString) Dim commandBuilder As New SqlCommandBuilder(dataAdapter) Dim table As New DataTable() table.Locale = System.Globalization.CultureInfo.InvariantCulture dataAdapter.Fill(table) BindingSource1.DataSource = table DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader) End Sub
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.