none
Filtros com "BETWEEN" no Sql RRS feed

  • 질문

  • Bom dia amigos.

    Estou com o um problema num projecto da Escola, já fiz varias pesquisas na Net e não tenho encontrado solução até então, o meu projecto tem como objectivo fazer uma gestão de Plantas com todas as suas informações (EX: Nome, Nome Cientifico, Temperatura Mínima, Temperatura Máxima, Etc...). Todas essas informações serão exibidas numa DataGridView na Janela principal do Programa. O problema é quando tento criar filtros! Ex: eu quero todas as plantas onde a temperatura mínima seja maior que 14ºC, assim ao escrever "14" no NumericUpDown automaticamente ele deveria mostrar todas as plantas correspondentes PORÉM mesmo depois de tantas modificações ainda não consigo fazer o pretendido!

    Deixo-vos o código de como está (só não coloco a imagem pois o site diz que "O corpo do texto não pode conter imagens ou links até que possamos verificar sua conta"):


    Tentativa 1

    Dim ds As New DataSet
            Dim sql As String = "SELECT * FROM Planta WHERE TemperaturaMinima BETWEEN '%" & NUD_Temperatura_Min.Value & "%' AND '%" & NUD_Temperatura_Max.Value & "%'"
            Dim da As New OleDbDataAdapter(sql, con)
            da.Fill(ds, "Planta")
            DTGrid.DataSource = ds
            DTGrid.DataMember = "Planta"

    Tentativa 2

    Private Sub NUD_Temperatura_Min_ValueChanged(sender As Object, e As EventArgs) Handles NUD_Temperatura_Min.ValueChanged
            Dim sql As String
            Dim insertcommand As New OleDbCommand
            sql = "SELECT * FROM Planta WHERE TemperaturaMinima BETWEEN @ValorMin AND @ValorMax"
            insertcommand.Parameters.Add("ValorMin", OleDbType.Integer).Value = NUD_Temperatura_Min.Value
            insertcommand.Parameters.Add("ValorMax", OleDbType.Integer).Value = NUD_Temperatura_Max.Value
            insertcommand = New OleDbCommand(sql, con)
            insertcommand.ExecuteNonQuery()


    2018년 4월 5일 목요일 오후 7:14

답변

  • Boa noite.

    A temperatura é um número, correto?

    Tentei assim:

    Dim sql As String = "SELECT * FROM Planta WHERE

    TemperaturaMinima >= " & CDbl(txt_Temp_Minima.Text) & " AND

    TemperaturaMaxima <= " & CDbl(txt_Temp_Maxima.Text)


    As textboxes podem ser trocadas por outros controles.


    MARIANO1776

    2018년 4월 5일 목요일 오후 9:36