informaster 2 Posted February 23, 2011 Report Share Posted February 23, 2011 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 Nuno Revez @informaster Link to post Share on other sites
Caça 17 Posted February 23, 2011 Report Share Posted February 23, 2011 Utiliza uma clausula WHERE ou então utiliza o RowFilter do DataTable Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
informaster 2 Posted February 23, 2011 Author Report Share Posted February 23, 2011 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 Nuno Revez @informaster Link to post Share on other sites
Caça 17 Posted February 23, 2011 Report Share Posted February 23, 2011 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 Link to post Share on other sites
informaster 2 Posted February 23, 2011 Author Report Share Posted February 23, 2011 Ok e esse "Pedro" se for igual a uma txt_nomeempregado? Nuno Revez @informaster Link to post Share on other sites
Caça 17 Posted February 23, 2011 Report Share Posted February 23, 2011 Pode ser Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
informaster 2 Posted February 23, 2011 Author Report Share Posted February 23, 2011 e ainda á outra situação Where Empregado e só na data de hoje (todaydate) Nuno Revez @informaster Link to post Share on other sites
informaster 2 Posted February 23, 2011 Author Report Share Posted February 23, 2011 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..... : Nuno Revez @informaster Link to post Share on other sites
Caça 17 Posted February 23, 2011 Report Share Posted February 23, 2011 Asegui de "Pedro" colocas AND Data = 'Data a pesquisar' Deixo aqui um link para leres Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
informaster 2 Posted February 23, 2011 Author Report Share Posted February 23, 2011 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 Link to post Share on other sites
Caça 17 Posted February 23, 2011 Report Share Posted February 23, 2011 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 Link to post Share on other sites
informaster 2 Posted February 24, 2011 Author Report Share Posted February 24, 2011 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 Nuno Revez @informaster Link to post Share on other sites
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