Jump to content
Sign in to follow this  
informaster

Filtrar num DATAGRID os dados referentes a um utilizador - Base de dados SQLITE

Recommended Posts

informaster

Boas Tardes

Exmos. Senhores

Tenho uma Form com este codigo onde tem uma DATAGRID:

Imports System.Data.SQLite

Public Class frm_entradas
    Dim sConnectionString As String

    Private Sub carregaentradas()
        Try
            'define string de conexão com banco de dados SQLite
            'usando a criptografia
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            'abre a conexão
            Dim oConn As New SQLite.SQLiteConnection(sConnectionString)
            oConn.Open()
            'define o comando SQL para retornar todos os dados da tabela Movimentos Entradas
            Dim daentradas As New SQLite.SQLiteDataAdapter("Select id,produto,quantidade,data,hora,empregado,iddoc From moventradas order by id desc", oConn)
            'define o dataset
            Dim ds As New DataSet("Northwind")
            'define o esquema da tabela
            daentradas.FillSchema(ds, SchemaType.Source, "moventradas")
            'preenche o dataset
            daentradas.Fill(ds, "moventradas")
            'exibe os dados no datagridview
            gdvDados_entradas.DataSource = ds.Tables("moventradas")
            'fecha a conexao
            oConn.Close()
        Catch ex As Exception
            MsgBox("Erro ao acessar o banco de dados SQLite: " & ex.Message)
        End Try
    End Sub

    Public Sub valores_produtos()
        Try

            'define um objeto Command
            Dim SQLcommand As SQLiteCommand
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            Dim SQLconnect As New SQLite.SQLiteConnection(sConnectionString)
            SQLconnect.Open()
            SQLcommand = SQLconnect.CreateCommand

            'executa a consulta
            SQLcommand.CommandText = "Select * from produtos"

            'VARIAVEL LEITOR É UM DATA READER DO SQLITE E PODE SER IGUAL A UM COMANDO SQL . EXECUTANDO UM READER
            Dim leitorprodutos As SQLiteDataReader = SQLcommand.ExecuteReader()

            'SE LEITOR  TIVER LINHAS ENTÃO
            If leitorprodutos.HasRows Then

                'EXECUTA ATE LERES OS DADOS TIPO ACESSO PARA STRING
                While leitorprodutos.Read()
                    cb_produtosins.Items.Add(leitorprodutos.Item("descricao")).ToString()
                    cb_produtosins.Text = leitorprodutos.Item("descricao")
                End While
            End If

            SQLcommand.Dispose()
            SQLconnect.Close()
        Catch ex As Exception
            MsgBox("Erro ao acessar o SQLite: " & ex.Message)
        End Try

    End Sub



    Private Sub bt_sairacesso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_sairentrada.Click
        frm_principal.Enabled = True
        Me.Close()

    End Sub

    Private Sub frm_entradas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        frm_principal.Enabled = False
        bt_gravarentrada.Enabled = False

        carregaentradas()
        valores_produtos()
        valores_iddocentradas()
    End Sub
    Public Sub valores_iddocentradas()
        Try

            'define um objeto Command
            Dim SQLcommand As SQLiteCommand
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            Dim SQLconnect As New SQLite.SQLiteConnection(sConnectionString)
            SQLconnect.Open()
            SQLcommand = SQLconnect.CreateCommand

            'executa a consulta
            SQLcommand.CommandText = "Select docnumero from docentradas"

            'VARIAVEL LEITOR É UM DATA READER DO SQLITE E PODE SER IGUAL A UM COMANDO SQL . EXECUTANDO UM READER
            Dim leitordocentradas As SQLiteDataReader = SQLcommand.ExecuteReader()

            'SE LEITOR  TIVER LINHAS ENTÃO
            If leitordocentradas.HasRows Then

                'EXECUTA ATE LERES OS DADOS TIPO ACESSO PARA STRING
                While leitordocentradas.Read()
                    txt_iddoc.Text = (leitordocentradas.Item("docnumero") + 1)

                End While
            End If

            SQLcommand.Dispose()
            SQLconnect.Close()
        Catch ex As Exception
            MsgBox("Erro ao acessar o SQLite: " & ex.Message)
        End Try

    End Sub

    Private Sub bt_inserirlinha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_inserirlinha.Click
        Try
            'define um objeto Command
            Dim SQLcommand As SQLiteCommand
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            Dim SQLconnect As New SQLite.SQLiteConnection(sConnectionString)
            SQLconnect.Open()
            SQLcommand = SQLconnect.CreateCommand

            'Botao gravar está enable
            bt_gravarentrada.Enabled = True

            'INSERE OS REGISTOS DAS TEXTBOX´S NA BD SQLITE ENTRADAS DE PRODUTOS
            SQLcommand.CommandText = "INSERT INTO moventradas(produto,quantidade,data,hora,empregado,iddoc)  VALUES ('" + cb_produtosins.Text.Replace("'", "''") + "','" + txt_quantidade.Text.Replace("'", "''") + "','" + frm_principal.txt_data.Text.Replace("'", "''") + "','" + frm_principal.txt_hora.Text.Replace("'", "''") + "','" + frm_principal.txt_infoemp.Text.Replace("'", "''") + "','" + txt_iddoc.Text.Replace("'", "''") + "')"


            'executa a consulta
            SQLcommand.ExecuteNonQuery()
            SQLcommand.Dispose()
            SQLconnect.Close()

            cb_produtosins.Text = String.Empty
            txt_quantidade.Value = "1"

        Catch ex As Exception
            MsgBox("Erro ao acessar o SQLite: " & ex.Message)
        End Try
        cb_produtosins.Focus()
        carregaentradas()
    End Sub

    Private Sub bt_gravarentrada_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_gravarentrada.Click
        Try
            'define um objeto Command
            Dim SQLcommand As SQLiteCommand
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            Dim SQLconnect As New SQLite.SQLiteConnection(sConnectionString)
            SQLconnect.Open()
            SQLcommand = SQLconnect.CreateCommand


            'INSERE OS REGISTOS DAS TEXTBOX´S NA BD SQLITE docentradas
            SQLcommand.CommandText = "INSERT INTO docentradas(docnumero)  VALUES ('" + txt_iddoc.Text.Replace("'", "''") + "')"

            'executa a consulta
            SQLcommand.ExecuteNonQuery()
            SQLcommand.Dispose()
            SQLconnect.Close()

            'Mensagem quando guarda
            MsgBox("Foi inserido um novo documento de ENTRADA DE STOCK Nº" + txt_iddoc.Text.ToUpper + "Por o empregado, " + frm_principal.txt_infoemp.Text)
            Me.Close()
            frm_principal.Enabled = True

        Catch ex As Exception
            MsgBox("Erro ao acessar o SQLite: " & ex.Message)
        End Try

    End Sub


    Private Sub bt_cancelarentrada_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancelarentrada.Click
        frm_principal.Enabled = True
        Close()
    End Sub
End Class

O que se passa aqui é que estou a colocar todas as linhas e todas as colunas para dentro do DataGrid

O que gostava de fazer era apenas apresentar a informação filtrada no campo(coluna) "empregado" por empregado assim seja.

É obvio que tenho uma txt_box que tem sempre o nome de empregado que entrou nesta Form.

A ideia era

o filtro da coluna EMPREGADO (SQLITE) se for igual ao nome da TXT_BOXEMPREGADO então apresenta só informação desse EMPREGADO APENAS.

Alguem tem alguma ideia simples para resolver isto??????

Grande Abraço para todos e para aqueles que todos os dias teem trabalhado para este FORUM magnifico.

Nuno Revez

Abraço :cheesygrin:


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
Caça

Utiliza uma clausula WHERE ou então utiliza o RowFilter do DataTable


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
informaster

Boas eu iria mais por Where.

Mas pode me dar um exemplo de um Where onde entre várias condições ?

Pois ainda não estudei muito bem o SQLITE o pouco que estudei ainda tenho duvidas.

Estou ainda no principio da minha 1º aplicação com SQLITE.

Abraço :cheesygrin:


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
Caça

Ex:

Select id,produto,quantidade,data,hora,empregado,iddoc From moventradas WHERE empregado = 'Pedro'  order by id desc

ou

Select id,produto,quantidade,data,hora,empregado,iddoc From moventradas WHERE empregado = 1  order by id desc


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
informaster

Não eu digo é como colocavas em o comando todo com empregado e data

^Só para ficar a perceber como coloco várias situações na mesma linha.....    : :wallbash:


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
Caça

Asegui de "Pedro" colocas

AND Data = 'Data a pesquisar'

Deixo aqui um link para leres


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
informaster

Muito porreiro esse link.

No entanto como coloco a textbox ai dentro

Ou melhor

o Pedro fica assim 'Pedro'

mas se for uma txt_boxempregado fica como?

Assim 'txt_boxempregado' !!!!


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
Caça

Não, ficaria assim

Dim daentradas As New SQLite.SQLiteDataAdapter("SELECT id,produto,quantidade,DATA,hora,empregado,iddoc FROM moventradas WHERE empregado = '" & TxtEmpregado.Text & "'  ORDER BY id DESC")


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
informaster

Ok Resolvido ficou assim:

Private Sub carregaentradas()
        Try
            'define string de conexão com banco de dados SQLite
            'usando a criptografia
            sConnectionString = "Data Source=C:\StockUs\bdstocks2011.db3;Version=3;New=True;Compress=True;"
            'abre a conexão
            Dim oConn As New SQLite.SQLiteConnection(sConnectionString)
            oConn.Open()
            'define o comando SQL para retornar todos os dados da tabela Movimentos Entradas
            Dim daentradas As New SQLite.SQLiteDataAdapter("Select id,produto,quantidade,data,hora,empregado,iddoc From moventradas Where empregado='" & frm_principal.txt_infoemp.Text & "' AND data = '" & frm_principal.txt_data.Text & "' order by id Desc", oConn)
            ' ("order by id desc", oConn)
            'define o dataset
            Dim ds As New DataSet("Northwind")
            'define o esquema da tabela
            daentradas.FillSchema(ds, SchemaType.Source, "moventradas")
            'preenche o dataset
            daentradas.Fill(ds, "moventradas")
            'exibe os dados no datagridview
            gdvDados_entradas.DataSource = ds.Tables("moventradas")
            'fecha a conexao
            oConn.Close()
        Catch ex As Exception
            MsgBox("Erro ao acessar o banco de dados SQLite: " & ex.Message)
        End Try
    End Sub

Abraço :cheesygrin:


 

 

Nuno Revez

@informaster

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
Sign in to follow this  

×
×
  • Create New...

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.