none
Pesquisar utilizando datas em ASP.NET com C# RRS feed

  • Pergunta

  •  Ola pessoal estou com uma duvida aqui, queria saber como faço para selecionar um valor de uma radiobuttonlist e em seguida tenho uma dropdwonlist que sera carregada com os valores da tabela que foi selecionada no radiobuttonlist, mas a duvida aqui é como posso escolher apenas um valor dessa minha dropdwonlist que ja foi carregada e apresentar apenas esse valor numa gridview, sendo que assim que vou alterando de valores na drop a minha gridview tambem se altera
    terça-feira, 4 de novembro de 2014 15:19

Respostas

  • Desculpe erro meu, segue o correto:

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular,data_Leitura FROM valores_conduta WHERE data_Leitura BETWEEN {0} AND {1}", txtDataInicio.Text, txtDataFim.Text), conn);

    • Marcado como Resposta Lolita28 quinta-feira, 6 de novembro de 2014 14:54
    quinta-feira, 6 de novembro de 2014 14:07

Todas as Respostas

  • Mais Lolita28 se você colocou isso no evento SelectIndex da DropDownList realmente vai alterar, sugiro que ao escolher o valor da DropDownList você carrega os dados através de um botão ao invés do evento acima citado, posta seu código do DropDownList que te ajudo.

    Ou você pode tentar desativar o AutoPostBack de seu DropDownList assim:

    AutoPostBack =false;


    • Editado Mr. GMSOFT terça-feira, 4 de novembro de 2014 16:05
    terça-feira, 4 de novembro de 2014 16:03
  • Ola vou te explicar melhor o porque do surgimento dessa duvida para ver se assim me consegue ajudar se entender o problema de raiz.

    Bom o meu objectivo é fazer um histórico com esse aspecto(queria lhe enviar a imagem da minha interface mas ainda não me deixam pois não verificaram a conta, peço desculpas)

    Em que eu ao escolher a data do dia X para o dia Y, e em seguida se eu escolher uma das opções na radiobuttonList a minha dropdownlist seja preenchida com os valores que preenchem esse requisitos

    Nesse caso escolhi o cliente particular e na drop aparece os nomes dos cliente particulares.

    O meu problema é como eu consigo escolher a data X e a data Y e que ao escolher por exemplo a opção cliente particular que ele vá a base de dados pesquisar todos os clientes particulares em que se enquadram nessa data e que depois me preencha a minha drop com apenas esses clientes que tem esse requisito da data

    TABELA CLIENTE PARTICULAR

    IDCLIENTE--INT

    NOME-----VARCHAR

    DATA_INICIO---DATE

    DATA_FIM----DATE

    esta aqui o codigo da interface em ASP.NET

    <h2>Histórico</h2>
    
        <asp:Label ID="lbDe" runat="server" Text="De">De:</asp:Label>
        <asp:TextBox ID="txtDataInicio" runat="server" placeHolder="dd/mm/aaaa"></asp:TextBox>
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/iconCalender.jpg" OnClick="ImageButton1_Click" />
        <asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#3366CC"
             BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#003399" Height="200px" Width="220px"
             OnSelectionChanged="Calendar1_SelectionChanged">
            <DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
            <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
            <OtherMonthDayStyle ForeColor="#999999" />
            <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
            <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
            <TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
            <TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
            <WeekendDayStyle BackColor="#CCCCFF" />
        </asp:Calendar>&nbsp a:
        <asp:TextBox ID="txtDataFim" runat="server" placeHolder="dd/mm/aaaa"></asp:TextBox>
        <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/iconCalender.jpg" OnClick="ImageButton2_Click" />
        <asp:Calendar ID="Calendar2" runat="server" BackColor="White" BorderColor="#3366CC"
             BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#003399" Height="200px" Width="220px"
             OnSelectionChanged="Calendar2_SelectionChanged">
            <DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
            <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
            <OtherMonthDayStyle ForeColor="#999999" />
            <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
            <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
            <TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
            <TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
            <WeekendDayStyle BackColor="#CCCCFF" />
        </asp:Calendar>
        <br /><br />
        <asp:Label ID="escolher" runat="server" Text="Escolhe" Font-Bold="True" >Escolhe uma das opções:</asp:Label><br /><br />
        <asp:RadioButtonList ID="rblHistorico" runat="server" RepeatDirection="Horizontal"
             AutoPostBack="True" OnSelectedIndexChanged="rblHistorico_SelectedIndexChanged">
    
            <asp:ListItem Value="Subsistema" Text="Subsistema"></asp:ListItem>
            <asp:ListItem Value="Município" Text="Município"></asp:ListItem>
            <asp:ListItem Value="Conduta" Text="Conduta"></asp:ListItem>
            <asp:ListItem Value="Caudalimetro" Text="Caudalimetro"></asp:ListItem>
            <asp:ListItem Value="Manutenção" Text="Manutenção"></asp:ListItem>
            <asp:ListItem Value="Cliente Particular"></asp:ListItem>
    
        </asp:RadioButtonList><br /><br />
        <asp:DropDownList ID="ddlHistorico" runat="server"></asp:DropDownList>
        <asp:Button ID="botaoPequisar" runat="server" Text="Pesquisar" CssClass="botao" OnClick="botaoPequisar_Click" />
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>
    //SELECIONAR OPCOES NA RADIOBUTTONLIST
            protected void rblHistorico_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (rblHistorico.SelectedValue == "Subsistema")
                {
                    ddlHistorico.Visible = true;
                    preencherDropSubsistema();
                    //botaoPequisar.Visible = true;
                    //selecionarSubsistemaDrop();
                }
    
                else if(rblHistorico.SelectedValue == "Município")
                {
                    ddlHistorico.Visible = true;
                    preencherDropMunicipio();
                    //botaoPequisar.Visible = true;
                }
    
                else if (rblHistorico.SelectedValue == "Conduta")
                {
                    ddlHistorico.Visible = true;
                    preencherDropConduta();
                    //botaoPequisar.Visible = true;
                }
    
                else if (rblHistorico.SelectedValue == "Caudalimetro")
                {
                    ddlHistorico.Visible = true;
                    preencherDropCaudalimetro();
                    //botaoPequisar.Visible = true;
                }
    
                else if (rblHistorico.SelectedValue == "Manutenção")
                {
                    ddlHistorico.Visible = true;
                    preencherDropManutencao();
                    //botaoPequisar.Visible = true;
                }
    
                else if (rblHistorico.SelectedValue == "Cliente Particular")
                {
                    ddlHistorico.Visible = true;
                    preencherDropClienteParticular();
                    //botaoPequisar.Visible = true;
                }
    
            }
    
    //PREENCHER DROP COM SUBSISTEMAS
            private void preencherDropClienteParticular()
            {
    
                var conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["basedados"].ConnectionString);
    
                MySqlDataAdapter da = new MySqlDataAdapter("SELECT nome,idCliente_Particular FROM cliente_particular", conn);
    
                da.SelectCommand.CommandType = CommandType.Text;
    
                //definir o objecto dadaset (ds)
                DataSet ds = new DataSet();
                //preencher os dados
                da.Fill(ds);
    
                ddlHistorico.DataTextField = "nome"; //nome do campo do seu select
                ddlHistorico.DataValueField = "idCliente_Particular"; //nome do campo do seu select
                ddlHistorico.DataSource = ds;
                ddlHistorico.DataBind();
            }


    quarta-feira, 5 de novembro de 2014 14:34
  • Acho que entendi me confirma por favor, no caso você quer fazer uma consulta no banco de acordo com a data de inicio e fim fornecida juntamente com as opções que escolheu em seu radiolist, correto?


    Bom primeiramente  seu sql tem que receber o parâmetro das datas para a pesquisa, o que seria mais ou menos assim:

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular FROM cliente_particular and Data_inicio={0} BETWEEN DATA_FIM={1}",Calendar1.SelectedDate.ToString(),Calendar2.SelectedDate.ToString()),conn);


    • Editado Mr. GMSOFT quarta-feira, 5 de novembro de 2014 14:51
    quarta-feira, 5 de novembro de 2014 14:51
  • Ola, é isso mesmo que queria explicar, mas ao referir a data em lhe disse uma coisa errada, peço desculpa é que em vez de ter uma data de inicio e uma data de fim na tabela tenho é apenas uma data_leitura que quero saber se essa data_leitura esta entre a data preenchida pela 1º calendario e a segunda data no 2º calendario

    seria assim?

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular FROM cliente_particular WHERE data_Leitura BETWEEN (" + Calendar1.SelectedDate.ToShortDateString() + ") AND ("+ Calendar2.SelectedDate.ToShortDateString() +")"), conn);


    • Editado Lolita28 quinta-feira, 6 de novembro de 2014 11:45
    quinta-feira, 6 de novembro de 2014 11:45
  • Faz dessa maneira que funciona, utilizando o IN vai comparar o seu data_leitura com o intervalo entre as datas do Calendar:

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular FROM cliente_particular WHERE data_Leitura IN({0} BETWEEN {1})",Calendar1.SelectedDate.ToString(),Calendar2.SelectedDate.ToString()),conn);

    • Marcado como Resposta Lolita28 quinta-feira, 6 de novembro de 2014 12:53
    • Não Marcado como Resposta Lolita28 quinta-feira, 6 de novembro de 2014 12:53
    quinta-feira, 6 de novembro de 2014 12:04
  • Tentei esse codigo mas para nao complicar coloquei as data do utilizador em textbox simples mas da me um erro estupido

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular,data_Leitura FROM valores_conduta WHERE data_Leitura IN ({0} BETWEEN {1})", txtDataInicio.Text, txtDataFim.Text), conn);

    Erro:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

    quinta-feira, 6 de novembro de 2014 13:41
  • Desculpe erro meu, segue o correto:

    MySqlDataAdapter da = new MySqlDataAdapter(string.Format("SELECT nome,idCliente_Particular,data_Leitura FROM valores_conduta WHERE data_Leitura BETWEEN {0} AND {1}", txtDataInicio.Text, txtDataFim.Text), conn);

    • Marcado como Resposta Lolita28 quinta-feira, 6 de novembro de 2014 14:54
    quinta-feira, 6 de novembro de 2014 14:07
  • Muito obrigada funcionou :)!!
    quinta-feira, 6 de novembro de 2014 14:54