Sto facendo alcune prove che mi fanno pensare che sia sbagliato quella clausola WHERE... non credi?

Creazione Siti Vicenza
Posizionamento Siti - SEO
Ciao Claudio, continuo a far delle prove ma niente ancora... sono sempre piu propenso a pensare che il problema sia nel WHERE, di sicuro non mi sta filtrando i risultati perchè, secondo me, non riesce a leggere il nodo (record) padre interessato nella relazione, ma legge tutto il contenuto della seconda tabella del Db.


La posizione poi della query è di sicuro sbagliata, ma inserendola subito prima del "if(resultSet2" non mi fa vedere i nodi figli, ma solo quello in cima alla gerarchia...

Sto diventando mezzo scemo, non riesco ad andare avanti! attendo speranzoso nel tuo aiuto!!!

Creazione Siti Vicenza
Posizionamento Siti - SEO
267 messaggi dal 29 settembre 2009
Da quello che ho letto allo start del thread ho capito che te devi realizzare una relazioni uno molti che ti permetta di associare ad una destinazione piu categorie .. avresti quindi sul db due tbl del tipo

Destinazione [TABELLA]
id intero //ChiavePrimaria
descrizione varchar(50)

Categoria[TABELLA]
id intero //ChiavePrimaria
nomeCategoria varchar(50)
idDestinazione int //Chiave secondaria che punta alla chiave primaria della tabella Destinazione



Se sei in questo caso puoi utlizzare diretmente questo codice(solo di esempio) altrimenti se il verso della relazione è al contrario devi solo scambiare le destinazioni con le categorie

protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                TreeNode Root = new TreeNode();
                Root.Text = "Elenco Cataloghi Presenti (pdf)";
                Root.PopulateOnDemand = false;

                String connStr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
                SqlConnection dbConn = new SqlConnection(connStr);
                dbConn.Open();
                String query = "SELECT * FROM [Destinazione]";

                SqlCommand cmdQuery = new SqlCommand(query, dbConn);
                SqlDataReader dataReaderDestinazione = cmdQuery.ExecuteReader();

                if (dataReaderDestinazione.HasRows)
                {
                    while (dataReaderDestinazione.Read())
                    {

                        string nomeDestinazione = (string)dataReaderDestinazione["descrizione"];
                        int idDestinazione = (int)dataReaderDestinazione["id"];

                        TreeNode DestinazioneCorrente = new TreeNode();
                        DestinazioneCorrente.Text = nomeDestinazione;
                        DestinazioneCorrente.Value = idDestinazione.ToString();
                        DestinazioneCorrente.PopulateOnDemand = false;

                        SqlConnection dbConn2 = new SqlConnection(connStr);
                        dbConn2.Open();
                        query = "SELECT * FROM [Categoria] WHERE ([idDestinazione] = @idDestinazione)";
                        SqlCommand cmdQuerycategoria = new SqlCommand(query, dbConn2);
                        cmdQuerycategoria.Parameters.AddWithValue("idDestinazione", idDestinazione);
                        SqlDataReader dataReaderCategoria = cmdQuerycategoria.ExecuteReader();

                        if (dataReaderCategoria.HasRows)
                        {
                            while (dataReaderCategoria.Read())
                            {

                                string nomeCategoria = (string)dataReaderCategoria["nomeCategoria"];
                                int idCategoria = (int)dataReaderDestinazione["id"];

                                TreeNode CategoriaCorrente = new TreeNode();
                                CategoriaCorrente.Text = nomeCategoria;
                                CategoriaCorrente.Value = idCategoria.ToString();
                                CategoriaCorrente.PopulateOnDemand = false;
                                DestinazioneCorrente.ChildNodes.Add(CategoriaCorrente);
                            }
                        }
                        dataReaderCategoria.Close();
                        Root.ChildNodes.Add(DestinazioneCorrente);
                    }
                    dbConn.Close();

                }
                TreeView1.Nodes.Add(Root);
            }
            
        }


ciao
Ciao! scusa per il ritardo nel rispondere, ma ieri mia moglie si è rotto un braccio cadendo dalla bici, tutta la domenica e stamattina in ospedale...

Comunque ho avuto un'oretta adesso per provare il tuo esempio, al momento mi genera questo errore:

Riferimento a un oggetto non impostato su un'istanza di oggetto. 
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack. 

Dettagli eccezione: System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.

Errore nel codice sorgente: 


Riga 70:             Root.PopulateOnDemand = false;
Riga 71: 
Riga 72:      <b><i>       String connStr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
</i></b>
 


come dovrei fare allora?

grazie mille!

Creazione Siti Vicenza
Posizionamento Siti - SEO
267 messaggi dal 29 settembre 2009
ovvio ... devi definire la connectionstring nel webconfig per poterti connettere al db ....
Ciao Claudio!

Ho sistemato (per modo di dire  ) la connessione nel web.config, ora l'errore è un altro:
Formato della stringa di inizializzazione non conforme alla specifica che inizia all'indice 0. 
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack. 

Dettagli eccezione: System.ArgumentException: Formato della stringa di inizializzazione non conforme alla specifica che inizia all'indice 0.

Errore nel codice sorgente: 


Riga 71: 
Riga 72:             String connStr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
Riga 73:          <b><i>   OleDbConnection dbConn = new OleDbConnection(connStr); </i></b>

 


Che vuol dire?

grazie mille...

Creazione Siti Vicenza
Posizionamento Siti - SEO
267 messaggi dal 29 settembre 2009
controlla qui il formato della connection string che fa al caso tuo http://www.connectionstrings.com/
ok grazie, sistemato anche questo, ma continua a generare questo errore:

C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\~\App_Data\DbCataloghi.mdb" non è un percorso valido. Assicurarsi che il nome del percorso sia corretto e di essere collegati al server in cui si trova il file. 


ovviamente non trova il file perchè non è in quella directory, ora come devo fare per puntare a quella giusta? di solito in questo genere di cose uso un Server.MapPath ma quì non saprei come implementarlo (si trova dentro una stringa...!)

Creazione Siti Vicenza
Posizionamento Siti - SEO

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.