UTILIZANDO DATA COMO PARA CONSULTAR MYSQL
Olá!
Estou fazendo um formulário de busca de dados em uma base MySQL. Quero dar a opção ao usuário de realizar consultas por perÃÂÂodo de cadastramento. Por isso ele(a) irá selecionar a data inÃÂÂcio e a data fim para gerar o relatório.
Porém lá no código, não sei como escrever a string correta para buscar os dados no MySQL. Alguém poderia me ajudar?
[]s
Estou fazendo um formulário de busca de dados em uma base MySQL. Quero dar a opção ao usuário de realizar consultas por perÃÂÂodo de cadastramento. Por isso ele(a) irá selecionar a data inÃÂÂcio e a data fim para gerar o relatório.
Porém lá no código, não sei como escrever a string correta para buscar os dados no MySQL. Alguém poderia me ajudar?
[]s
Amigo não sei como você está fazendo a conexão mas o select seria
Select * from [Tabela] where dataInicio >= '" & TxtDataInicio.Text & "' and dataTermino <= '" & TxtDataTermino.Text & "'"
Algo assim, passe sua estrutura de banco para verificarmos aqui no forum melhor.
Select * from [Tabela] where dataInicio >= '" & TxtDataInicio.Text & "' and dataTermino <= '" & TxtDataTermino.Text & "'"
Algo assim, passe sua estrutura de banco para verificarmos aqui no forum melhor.
Orlando,
Muito obrigada pela sua ajuda! Estava me batendo muito pra fazer isso.
Fiz uma adaptação do seu código e deu certo. Na form q estou construindo há dois campos: dtInicio para selecionar a data de InÃÂÂcio e dtFim para selecionar a data Final. Separei-as por dia mes e ano e depois inseri as variáveis para a string SQL. Segue abaixo para caso mais alguém do forum esteja com a mesma dificuldade:
string diaInicio = dtInicio.Value.Day.ToString();
string mesInicio = dtInicio.Value.Month.ToString();
string anoInicio = dtInicio.Value.Year.ToString();
string diaFim = dtFim.Value.Day.ToString();
string mesFim = dtFim.Value.Month.ToString();
string anoFim = dtFim.Value.Year.ToString();
sqlStr = "SELECT * FROM tcadastro_principal WHERE grupo = '" + grupo.Text + "' AND contrato = '" + contrato.Text + "' AND tipo = '" + tipo.Text + "' AND data >= '" + anoInicio + "-" + mesInicio + "-" + diaInicio + "' AND data <= '" + anoFim + "-" + mesFim + "-" + diaFim + "'";
[]s
Muito obrigada pela sua ajuda! Estava me batendo muito pra fazer isso.
Fiz uma adaptação do seu código e deu certo. Na form q estou construindo há dois campos: dtInicio para selecionar a data de InÃÂÂcio e dtFim para selecionar a data Final. Separei-as por dia mes e ano e depois inseri as variáveis para a string SQL. Segue abaixo para caso mais alguém do forum esteja com a mesma dificuldade:
string diaInicio = dtInicio.Value.Day.ToString();
string mesInicio = dtInicio.Value.Month.ToString();
string anoInicio = dtInicio.Value.Year.ToString();
string diaFim = dtFim.Value.Day.ToString();
string mesFim = dtFim.Value.Month.ToString();
string anoFim = dtFim.Value.Year.ToString();
sqlStr = "SELECT * FROM tcadastro_principal WHERE grupo = '" + grupo.Text + "' AND contrato = '" + contrato.Text + "' AND tipo = '" + tipo.Text + "' AND data >= '" + anoInicio + "-" + mesInicio + "-" + diaInicio + "' AND data <= '" + anoFim + "-" + mesFim + "-" + diaFim + "'";
[]s
Procure trabalhar com parâmetros nas consultas, é mais simples e você não precisa ficar se preocupando em como fazer essas concatenações.
Dim conn As New MySqlConnection("server=localhost;user id=root;password=password;database=database")
'campo2 é do tipo DATETIME
Dim cmd As New MySqlCommand("SELECT * FROM tabela1 WHERE campo2 BETWEEN ?param1 AND ?param2", conn)
Dim rd As MySqlDataReader
conn.Open()
cmd.Parameters.AddWithValue("?param1", DateTime.Now.AddDays(-1))
cmd.Parameters.AddWithValue("?param2", DateTime.Now.AddDays(1))
rd = cmd.ExecuteReader()
While rd.Read()
Console.WriteLine(rd("campo1") & " - " & rd("campo2") & " - " & rd("campo3"))
End While
rd.Close()
cmd.Dispose()
conn.Dispose()
Olha seu código como ficaria muito mais legÃÂÂvel.
sqlStr = "SELECT * FROM tcadastro_principal WHERE grupo = ?grupo AND contrato = ?contrato AND tipo = ?tipo AND data BETWEEN ?dtInicio AND ?dtFim";
cmd.Parameters.AddWithValue("?grupo", grupo.Text)
cmd.Parameters.AddWithValue("?contrato", contrato.Text)
cmd.Parameters.AddWithValue("?tipo", tipo.Text)
cmd.Parameters.AddWithValue("?dtInicio", dtInicio)
cmd.Parameters.AddWithValue("?dtFim", dtFim)
Olá mordor!
Eu esqueci de falar no começo, o programa que estou fazendo é em C#. Vc sabe como fazer o que vc me mostrou em C#?
Eu esqueci de falar no começo, o programa que estou fazendo é em C#. Vc sabe como fazer o que vc me mostrou em C#?
Ficaria assim. Estou utilizando o driver MySql Connector/NET.
using MySql.Data.MySqlClient;
using (MySqlConnection connection = new MySqlConnection("server=localhost;user id=root;password=password;database=database"))
{
using (MySqlCommand command = new MySqlCommand("SELECT * FROM tabela1 WHERE campo2 BETWEEN ?param1 AND ?param2", connection))
{
connection.Open();
command.Parameters.AddWithValue("?param1", DateTime.Now.AddDays(-1));
command.Parameters.AddWithValue("?param2", DateTime.Now.AddDays(1));
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
Console.WriteLine("{0} - {1} - {2}", reader["campo1"], reader["campo2"], reader["campo3"]);
reader.Close();
}
}
Tópico encerrado , respostas não são mais permitidas