Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C#]Listbox e Database

  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [C#]Listbox e Database

    Ho una ListBox che viene popolata con alcuni valori presenti nel database, e fin quì tutto ok. Dovendo fornire all'utente la possibilità di modificare questi dati, ho un problema: quando si va nella pagina di modifica, vorrei che la ListBox visualizzasse per primo e selezionato il valore attuale, e poi, nella lista, tutti i valori presi dal db. Qualcuno potrebbe darmi una mano?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    direi di giocare sulla query, escludi il valore selezionato e poi da c# lo aggiungi al primo posto della ListBox, dopo il bind

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da djciko Visualizza il messaggio
    direi di giocare sulla query, escludi il valore selezionato e poi da c# lo aggiungi al primo posto della ListBox, dopo il bind
    Nell'attesa, ecco come ho risolto:

    codice:
    {
                            string giornoChiusura ="-->" +  Session["GiornoChiusura"].ToString();
                            string ReplaceGiornoChiusura = giornoChiusura.Replace("-->", "");
                            cmdChiusura.Parameters.AddWithValue("@ActiveUserId", ActiveUserId);
                            chiusura.Open();
                           // lstChiusura.DataSource = cmdChiusura.ExecuteReader();
                           // lstChiusura.DataTextField = "Chiusura";
                           // lstChiusura.DataValueField = "Chiusura";
                           // lstChiusura.DataBind();
                            lstChiusura.Items.Insert(0,new ListItem(giornoChiusura, ReplaceGiornoChiusura,true));
                            if (giornoChiusura != "-->Lunedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Lunedì", "Lunedì"));
                            }
                            if (giornoChiusura != "-->Martedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Martedì", "Martedì"));
                            }
                            if (giornoChiusura != "-->Mercoledì")
                            {
                                lstChiusura.Items.Add(new ListItem("Mercoledì", "Mercoledì"));
                            }
                            if (giornoChiusura != "-->Giovedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Giovedì", "Giovedì"));
                            }
                            if (giornoChiusura != "-->Venerdì")
                            {
                                lstChiusura.Items.Add(new ListItem("Venerdì", "Venerdì"));
                            }
                            if (giornoChiusura != "-->Sabato")
                            {
                                lstChiusura.Items.Add(new ListItem("Sabato", "Sabato"));
                            }
                            if (giornoChiusura != "-->Domenica")
                            {
                                lstChiusura.Items.Add(new ListItem("Domenica", "Domenica"));
                            }
                            if (giornoChiusura != "-->Sempre aperto")
                            {
                                lstChiusura.Items.Add(new ListItem("Sempre aperto", "Sempre aperto"));
                            }
    
    
    
    
                        }
    Cosa ne pensi? A funzionare funziona, ma non so se ci sia una soluzione più pulita!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    scusami, ma non ho capito..

    l'utente deve selezionare il giorno di chiusura e la listbox non ha altro che i giorni della settimana ?

    parli di db ma poi lo hai tolto, pero' il command c'e' ancora


    se non si descrive lo scenario completo non si capisce...

  5. #5
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Il codice del db non l'ho ancora eliminato solo perché sto facendo delle prove, ma in realtà non lo uso più. L'utente, nella ListBox, deve vedere come primo valore il giorno attualmente memorizzato e, nella lista, in aggiunta a ciò, deve vedere tutti i restanti giorni escluso quello selezionato. La pagina in questione serve per modificare i dati presenti.
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    perdona, posta il codice completo, perche' non si capisce che intendi per "lista"...scusami ma non si riesce ad immaginare la pagina di modifica com'e' fatta..

  7. #7
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Ecco a te:

    codice:
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    
    namespace MyProject.UserHub
    {
        public partial class EditActivityAccount : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
              
                    if (Session["ActiveUserId"] == null)
                    {
                        Response.Redirect("../Login.aspx");
                    }
                
                else
                {
                    string connString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
                    string ActiveUserId = Session["ActiveUserId"].ToString();
    
    
                    using (SqlConnection conn = new SqlConnection(connString))
                    {
                        using (SqlCommand cmd = new SqlCommand("SELECT * FROM Locale WHERE UserId= @ActiveUserId", conn))
                        {
                            cmd.Parameters.AddWithValue("@ActiveUserId", ActiveUserId);
                            conn.Open();
                            SqlDataReader reader = cmd.ExecuteReader();
    
    
    
    
                            while (reader.Read())
                            {
                                r_Name.Text = reader["RefererName"].ToString();
                                r_Surname.Text = reader["RefererSurname"].ToString();
                                r_Mail.Text = reader["RefererMail"].ToString();
                                r_Phone.Text = reader["RefererPhone"].ToString();
                                r_Mobile.Text = reader["RefererMobilePhone"].ToString();
                                a_ActivityName.Text = reader["ActivityName"].ToString();
                                a_Website.Text = reader["Website"].ToString();
                                a_Paese.Text = reader["Paese"].ToString();
                                a_Cap.Text = reader["Cap"].ToString();
                                a_Description.Text = reader["Description"].ToString();
                                a_SmallDescription.Text = reader["SmallDescription"].ToString();
                                a_Phone.Text = reader["Phone"].ToString();
                                lblChiusura.Text = reader["Chiusura"].ToString();
                                Session["GiornoChiusura"] = reader["Chiusura"].ToString();
                            }
    
    
                        }
    
    
                    }
    
    
                    string ConnString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
    
    
                    using (SqlConnection chiusura = new SqlConnection(ConnString))
                    {
                        using (SqlCommand cmdChiusura = new SqlCommand("SELECT * FROM Locale WHERE UserId=@ActiveUserId", chiusura))
                        {
                            string giornoChiusura ="-->" +  Session["GiornoChiusura"].ToString();
                            string ReplaceGiornoChiusura = giornoChiusura.Replace("-->", "");
                            
                            lstChiusura.DataBind();
                            cmdChiusura.Parameters.AddWithValue("@ActiveUserId", ActiveUserId);
                            chiusura.Open();
                           // lstChiusura.DataSource = cmdChiusura.ExecuteReader();
                           // lstChiusura.DataTextField = "Chiusura";
                           // lstChiusura.DataValueField = "Chiusura";
                           // lstChiusura.DataBind();
                            lstChiusura.Items.Insert(0,new ListItem(giornoChiusura, ReplaceGiornoChiusura,true));
                            if (giornoChiusura != "-->Lunedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Lunedì", "Lunedì"));
                            }
                            if (giornoChiusura != "-->Martedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Martedì", "Martedì"));
                            }
                            if (giornoChiusura != "-->Mercoledì")
                            {
                                lstChiusura.Items.Add(new ListItem("Mercoledì", "Mercoledì"));
                            }
                            if (giornoChiusura != "-->Giovedì")
                            {
                                lstChiusura.Items.Add(new ListItem("Giovedì", "Giovedì"));
                            }
                            if (giornoChiusura != "-->Venerdì")
                            {
                                lstChiusura.Items.Add(new ListItem("Venerdì", "Venerdì"));
                            }
                            if (giornoChiusura != "-->Sabato")
                            {
                                lstChiusura.Items.Add(new ListItem("Sabato", "Sabato"));
                            }
                            if (giornoChiusura != "-->Domenica")
                            {
                                lstChiusura.Items.Add(new ListItem("Domenica", "Domenica"));
                            }
                            if (giornoChiusura != "-->Sempre aperto")
                            {
                                lstChiusura.Items.Add(new ListItem("Sempre aperto", "Sempre aperto"));
                            }
    
    
                            //lstChiusura.Items.Insert(1, new ListItem("Lunedì", "Lunedì"));
                            //lstChiusura.Items.Insert(2, new ListItem("Martedì", "Martedì"));
                            //lstChiusura.Items.Insert(3, new ListItem("Mercoledì", "Mercoledì"));
                            //lstChiusura.Items.Insert(4, new ListItem("Giovedì", "Giovedì"));
                            //lstChiusura.Items.Insert(5, new ListItem("Venerdì", "Venerdì"));
                            //lstChiusura.Items.Insert(6, new ListItem("Sabato", "Sabato"));
                            //lstChiusura.Items.Insert(7, new ListItem("Domenica", "Domenica"));
                            //lstChiusura.Items.Insert(8, new ListItem("Sempre aperto", "Sempre aperto"));
    
    
                        }
                    }
                }
            }
    
    
            protected void btn_Update_Click(object sender, EventArgs e)
            {
                string connString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
                string ActiveUserId = Session["ActiveUserId"].ToString();
                string LastUpdate = DateTime.Now.ToShortTimeString();
                try
                {
                    using (SqlConnection conn = new SqlConnection(connString))
                    {
                        using (SqlCommand cmd = new SqlCommand("UPDATE Locale SET RefererName=@RefererName, RefererSurname=@RefererSurname, RefererMail=@RefererMail, LastUpdate=@LastUpdate WHERE UserId=@ActiveUser", conn))
                        {
                            cmd.Parameters.AddWithValue("@ActiveUser", ActiveUserId);
                            cmd.Parameters.AddWithValue("@LastUpdate", LastUpdate);
                            cmd.Parameters.AddWithValue("@RefererName", r_Name.Text.ToString());
                            cmd.Parameters.AddWithValue("@RefererSurname", r_Surname.Text.ToString());
                            cmd.Parameters.AddWithValue("@RefererMail", r_Mail.Text.ToString());
                            conn.Open();
                            int updateStatus = cmd.ExecuteNonQuery();
                            if (updateStatus != 0)
                            {
                                Response.Write("Dati correttamente aggiornati!");
                            }
                    
                        }
                    }
                }
                catch(Exception errCode)
                {
                    Response.Write("Qualcosa è andato storto: " + errCode.ToString());
                }
            }
        }
    }
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.