Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [.NET C#] CommandText Error

    Ciao a tutti,
    sono un newbie di .NET
    Ho realizzato una pagina che recupera dati da un db su una query articolata e popola una gridview.
    Il codice:
    codice:
    protected void senda_Click(object sender, EventArgs e)
        {
            
            selectSQL = "SELECT IDIntervento, marca, tipo, macchina, TipologiaInconvenienti, RagioneSociale, PartitaIVA, NomeTecnico, CognomeTecnico, DataInizio, DataFine, sospeso FROM interventi WHERE IDIntervento IS NOT null";
    
            if (listTecnico.SelectedItem.Value != "vuoto")
            {
                selectSQL += " AND IDtecnici='" + listTecnico.SelectedItem.Value + "'";
            }
            if (listMarca.SelectedItem.Value != "vuoto")
            {
                selectSQL += " AND IDMarca='" + listMarca.SelectedItem.Value + "'";
            }
            if (listMacchina.SelectedItem.Value != "vuoto")
            {
                selectSQL += " AND idmacchina='" + listMacchina.SelectedItem.Value + "'";
            }
            if (Calendar1.SelectedDate.ToShortDateString() != null && Calendar1.SelectedDate.ToShortDateString()!="01/01/0001")
            {
                selectSQL += " AND DataInizio>'" + Calendar1.SelectedDate.ToShortDateString() + "'";
            }
            if (Calendar2.SelectedDate.ToShortDateString() != null && Calendar2.SelectedDate.ToShortDateString() != "01/01/0001")
            {
                selectSQL += " AND DataFine<'" + Calendar2.SelectedDate.ToShortDateString() + "'";
            }
            lblResults.Text = selectSQL;
            //selectSQL += " AND IDtecnici='" + listTecnico.SelectedItem.Value + "' AND IDMarca='" + listMarca.SelectedItem.Value + "' AND idmacchina='" + listMacchina.SelectedItem.Value + "'";
            buildPage();
            //GridView1.PageIndex = e.NewPageIndex;
            
        }
        private void buildPage()
        {
            SqlConnection con = new SqlConnection(connectionString);
            try
            {
                SqlCommand cmd = new SqlCommand(selectSQL, con);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                // Fill the DataSet.
                DataSet ds = new DataSet();
    
                adapter.Fill(ds, "interventi");
                GridView1.DataSource = ds;
                GridView1.DataBind();
                
            }
            catch (Exception err)
            {
                lblResults.Text = "Errore!";
                lblResults.Text += err.Message;
            }
            finally
            {
                con.Close();
            }
        }
        protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            
            GridView1.PageIndex = e.NewPageIndex;
            buildPage();
            //GridView1.DataBind();
        }
    senda_Click popola correttamente il gridview.
    al cambio di pagina, invocando gridView_PageIndexChanging, ottengo il seguente errore:
    ExecuteReader: la proprietà CommandText non è stata inizializzata.
    Non capisco dove intervenire..
    http://www.dofoo.net

  2. #2
    quando cambi pagina, viene richiamata solo la buildpage() che usa "selectSQL", che però è costruita solo nel senda_click.

    dovresti spostare la creazione della selectSQL in un altro posto, e poi passarla come parametro alla buildpage()

    ciao

  3. #3
    Ciao,
    non è un problema di scope, selectSQL è definita come private e successivamente valorizzata in quel metodo. La query non cambia, ed è accessibile da ogni metodo della pagina.
    Se hai altre idee ben vengano, ci sto impazzendo..
    http://www.dofoo.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.