Avatar billede dragnor Juniormester
13. juni 2007 - 23:55 Der er 7 kommentarer og
1 løsning

dropdownliste driller

hvad gør jeg galt her?

protected void Page_Load(object sender, EventArgs e)
    {
        if(year.SelectedItem.Text == "2007")
        {
            mappenopdater("2007");
        }

    }

    protected void year_SelectedIndexChanged(object sender, EventArgs e)
    {
        mappenopdater(year.SelectedItem.Text);
    }
 
    private void mappenopdater(string TheYear)
    {
        mappe.Items.Clear();
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\databases\\DB.mdb");
        //OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\W3Sites\\kjsjdk\\databases\\DB.mdb");

        OleDbCommand selectCMD = new OleDbCommand("SELECT DISTINCT(Event) FROM Billeder WHERE Year = '" + TheYear + "'", con);
        selectCMD.CommandTimeout = 30;

        OleDbDataAdapter da = new OleDbDataAdapter();
        da.SelectCommand = selectCMD;

        DataSet dataset = new DataSet();
        da.Fill(dataset, "Billeder");
        try
        {
            mappe.DataSource = dataset.Tables[0];
            mappe.DataTextField = dataset.Tables[0].Columns[0].ColumnName.ToString();
            mappe.DataBind();
        }
        catch
        {

        }
        con.Close();
    }

Når siden loader, går den ind og henter værdier ind i min dropdownbox(mappe). Men hvis jeg så ændre i dropdownboxen(year) så skal den bruge denne værdi til at opdatere dropdownboxen(mappe) med helt nye værdier.

Kan nogen hjælpe med det?
Avatar billede kalp Novice
14. juni 2007 - 08:11 #1
mit bud er, at din SQL aldrig returnere en række til dig:)

det er noget der nemt kan løses, men da jeg ikke gider gætte mig til hvordan dine dato'er ser ud i db'en må du komme med et eksempel..

f.eks tror jeg at det der sker i din sql er noget med

WHERE Year = '2007-06-14 00:00'

og det er de der ekstra 00:00 der gør den intet finder.. for du har sikkert dato'en i db'en, men du skal så bare ikke sammenligne med den fulde dato:) for den finder du nok ikke.

Du må gerne sige hvordan dato'erne ser ud i database.. det eneste vi gør bagefter er at der kun sendes den dato ind som sql og så formattere vi "Year" så den også kun har et almindeligt dato format uden tiden.

så snart vi ikke sammenligne med tid som nu så virker din kode.
Avatar billede dragnor Juniormester
14. juni 2007 - 08:56 #2
det er ikke et dato felt, men kun et tekst felt, hvor der kun kan stå hele årstal, altså 2007, 2008, 2009, 2001 som eksempler.

Det interessante er at den virker fint ved Page_Load, men ikke ved year_SelectedIndexChanged.
Avatar billede neoman Novice
14. juni 2007 - 09:07 #3
og du har autopostback=true for din year ddl ?
Avatar billede thanse21 Nybegynder
14. juni 2007 - 12:45 #4
Har du prøvet at checke på om siden er PostBack i din Page_Load?

protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack) {
            if(year.SelectedItem.Text == "2007")
          {
            mappenopdater("2007");
          }
        }
    }
Avatar billede dragnor Juniormester
14. juni 2007 - 14:39 #5
tak neoman det var der problemet lå! Typisk!!!!
Avatar billede dragnor Juniormester
30. september 2007 - 15:21 #6
neoman skal du ikke have dine point?
Avatar billede neoman Novice
30. september 2007 - 19:58 #7
læg et svar selv og lad os dele i porten - 100 matador$ er rigeligt for en tanketorsk:)
Avatar billede dragnor Juniormester
01. oktober 2007 - 10:46 #8
Du får dem bare
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester