Toon posts:

[asp.net C#] dropdownlistbox binden

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een webform met daarop een dropdownlistbox. Nou wil ik in een repeater gegevens tonen naar aanleiding van een geselecteerd veld uit deze dd.listbox. Ik heb volop gezocht maar niet wat bruikbaars gevonden... wie kan mij op weg helpen?

Verwijderd

Wat op weg helpen?
bekijk http://www.dotnetjunkies....s/doc/webdatabinding.aspx
Wat lukt er juist niet? wat heb je al geprobeerd? Post eens de code die je al hebt dan kunnen we je misschien helpen.

Verwijderd

Topicstarter
het is op zich niet het binden op zich, want dat lukt me wel (voor repeaters en datalists). Het probleem is dat ik geen idee heb, hoe ik nou een query kan maken, naar aanleiding van een waarde uit me ddlistbox....

ik heb wel een en ander gevonden zoals:
http://www.c-sharpcorner..../July/DropDownListBox.asp
http://aspnet.4guysfromrolla.com/demos/ListBoxBinding.aspx

maar daarmee kom ik nog niet verder omdat er geen querys worden gemaakt in deze voorbeelden, maar puur en alleen het toevoegen van items aan de box zelf....

[ Voor 3% gewijzigd door Verwijderd op 16-11-2003 14:50 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
In de OnChange event oid van de dropdownlist zal je code moeten schrijven die dan de juiste gegevens gaat gaan ophalen.
Je doet dit het best met een parametrized query.

Zie ook hier voor meer info.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 17 november 2003 @ 08:33:
In de OnChange event oid van de dropdownlist zal je code moeten schrijven die dan de juiste gegevens gaat gaan ophalen.
Je doet dit het best met een parametrized query.

Zie ook hier voor meer info.
ik kom er nog steeds niet uit whoami.... helaas...
kan je me misschien nog wat hints cq. tips geven? of een voorbeeldje ergens vant internet?

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
Als je nu eens de relevante code post die je tot nu toe hebt, dan kan men je misschien wel beter helpen.
Je blijft nl. nogal vaag over wat je wil, wat je al hebt en wat je al zelf uitgezocht hebt.

Lees misschien eens de P&W Quickstart, en maak in de toekomst je topics aan adhv die quickstart.

[ Voor 12% gewijzigd door whoami op 18-11-2003 12:27 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 18 november 2003 @ 12:26:
Als je nu eens de relevante code post die je tot nu toe hebt, dan kan men je misschien wel beter helpen.
Je blijft nl. nogal vaag over wat je wil, wat je al hebt en wat je al zelf uitgezocht hebt.

Lees misschien eens de P&W Quickstart, en maak in de toekomst je topics aan adhv die quickstart.
Ik heb een poging gemaakt om mijn dropdownbox te binden. Mn code is nogal buggy heb ik het idee omdat ik nog een beginneling ben met c#...

kunnen jullie mij verder helpen?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
OleDbConnection aConnection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ ConfigurationSettings.AppSettings["DBConnectionString"]);
            
            if ( !this.IsPostBack)

            {
                OleDbDataAdapter da = new OleDbDataAdapter("Select * from verslagen", aConnection);
                try
                {
                    aConnection.Open();
                    DataSet ds = new DataSet(); 
                    da.Fill(ds, "verslagen");
                    myDropDownList.DataSource = ds;
                    myDropDownList.DataBind();
                }
                catch (Exception Ex)

                {
                    Response.Write(Ex.ToString()); 

                }

                finally
                {
                    aConnection.Close();

                    try
                    {
                        myDropDownList.Items.Insert(0, "Select an Item");
                        myDropDownList.SelectedIndex = 0;
                        Repeater1.Visible=true;
                        OleDbDataAdapter db = new OleDbDataAdapter("Select * from verslagen where ID=" & myDropDownList.SelectedItem.Value, aConnection);
                        aConnection.Open();
                        DataSet ds = new DataSet(); 
                        db.Fill(ds, "verslagen");
                        Repeater1.DataSource = ds;
                        Repeater1.DataBind();
                    }

                    catch (Exception Ex)
                    {
                        Response.Write(Ex.ToString()); 
                    }
                    finally
                    {
                        aConnection.Close();
                        Repeater1.Visible=false;

                    }
                                        
                    
                    
                }

            }

er zit ten eerste een fout in deze regel:
OleDbDataAdapter db = new OleDbDataAdapter("Select * from verslagen where ID=" & myDropDownList.SelectedItem.Value, aConnection);
Hij moet de waarde uit mijn dropdownbox in mn sql zetten, maar dan krijg ik deze melding: c:\inetpub\wwwroot\content\ucVerslag.ascx.cs(103): Operator '&' cannot be applied to operands of type 'string' and 'string'

Hebben jullie daarnaast nog tips om mijn code wat netter te maken?

[ Voor 5% gewijzigd door Verwijderd op 22-11-2003 12:53 ]


Verwijderd

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 public DataSet getVerslagen()
    {
        OleDbConnection aConnection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
 ConfigurationSettings.AppSettings["DBConnectionString"]);
        DataSet Ds;
        Ds = New DataSet;
    
        OleDbCommand oleComm;
        OledbDataAdapter Da
        If (!( aConnection.State == ConnectionState.Open)) Then
            aConnection.Open();
        
        oleComm = New OleDbCommand;
        oleComm = aConnection.CreateCommand;
        SQL = "SELECT * from verslagen";
        oleComm.CommandText = SQL;
        Da = new OleDbDataAdapter;
        Da.Fill(Ds);
        ObjConn.Close();
        Return Ds;
    }
    

    public DataSet getVerslag(int ID)
    {
        OleDbConnection aConnection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ 
ConfigurationSettings.AppSettings["DBConnectionString"]);
        DataSet Ds;
        Ds = New DataSet;
    
        OleDbCommand oleComm;
        OledbDataAdapter Da
        If (!( aConnection.State == ConnectionState.Open)) Then
            aConnection.Open();
        
        oleComm = New OleDbCommand;
        oleComm = aConnection.CreateCommand;
        SQL = "Select * from verslagen where ID= @id";
        oleComm.CommandText = SQL;
        oleComm.parameters.add("@id",OleDbtype.int).Value = ID
        Da = new OleDbDataAdapter;
        Da.Fill(Ds);
        ObjConn.Close();
        Return Ds;
    }    
    
    
            
            if ( !this.IsPostBack)

            {
               try
                {
                  
                    myDropDownList.DataSource = getVerslagen() ;
                    myDropDownList.DataBind();
                }
                catch (Exception Ex)

                {
                    Response.Write(Ex.ToString()); 
                }

                finally
                {
                   try
                    {
                        myDropDownList.Items.Insert(0, "Select an Item");
                        myDropDownList.SelectedIndex = 0;
                        Repeater1.Visible=true;
  
                        Repeater1.DataSource = getVerslag( myDropDownList.SelectedItem.Value);
                        Repeater1.DataBind();
                    }

                    catch (Exception Ex)
                    {
                        Response.Write(Ex.ToString()); 
                    }
                    finally
                    {
                        Repeater1.Visible=false;
                    } 
                }
            }

*disclaimer ik beng een c'er => hoofdletters en ;'s ben ik niet goed in.
public DataSet getVerslag(int ID) en public DataSet getVerslagen() kun je over heel je applicatie gebruiken via klassenaam.getVerslagen()

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

myDropDownList.SelectedItem.Value

Je zet hier de selectedindex van op 0.
De waarde is dus per definitie: "Selecteer een waarde"

En waarom zou je de boel gaan nesten in een finally statement? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EfBe
  • Registratie: Januari 2000
  • Niet online
"&" moet "+" zijn.

Verder is het wat een zootje. Dat komt omdat je de flow totaal niet optimaliseert. Je moet 1 connection gebruiken, 1 keer openen, daarna de database acties eroverheen executeren, daarna connection sluiten. Dus eerst sluiten en daarna weer openen (in de finally) is niet zo best. De code is uberhaupt bijelkaar geplakt en niet echt geprogrammeerd. Ik zie dat aan de wijze waarop je de repeater visable maakt en daarna meteen weer hidden (in de finally).

Je moet een eventhandler maken voor myDropDownList. IN die eventhandler laad je het verslag in en bind je dat aan de repeater. Nu laadt je het verslag in de page load, en dat doe je pal nadat je 'select an item' als selecteditem hebt gebombardeerd. Dat werkt niet echt... Ik was bezig met een betere versie maar de code die je hier post is zo brak, dat ik je beter kan adviseren een goed boek te kopen of in ieder geval een paar GOEDE tutorials door te nemen ipv wat raak te copy/pasten. (en VB code copy/pasten met '&' characters er in en dan niet weten waarom dat fout gaat geeft ook al aan dat je een paar essentiele kenniselementen mist. Die EERST beheersen, daarna dit soort dingen willen bouwen.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
EfBe schreef op 22 november 2003 @ 15:24:
"&" moet "+" zijn.

Verder is het wat een zootje. Dat komt omdat je de flow totaal niet optimaliseert. Je moet 1 connection gebruiken, 1 keer openen, daarna de database acties eroverheen executeren, daarna connection sluiten. Dus eerst sluiten en daarna weer openen (in de finally) is niet zo best. De code is uberhaupt bijelkaar geplakt en niet echt geprogrammeerd. Ik zie dat aan de wijze waarop je de repeater visable maakt en daarna meteen weer hidden (in de finally).

Je moet een eventhandler maken voor myDropDownList. IN die eventhandler laad je het verslag in en bind je dat aan de repeater. Nu laadt je het verslag in de page load, en dat doe je pal nadat je 'select an item' als selecteditem hebt gebombardeerd. Dat werkt niet echt... Ik was bezig met een betere versie maar de code die je hier post is zo brak, dat ik je beter kan adviseren een goed boek te kopen of in ieder geval een paar GOEDE tutorials door te nemen ipv wat raak te copy/pasten. (en VB code copy/pasten met '&' characters er in en dan niet weten waarom dat fout gaat geeft ook al aan dat je een paar essentiele kenniselementen mist. Die EERST beheersen, daarna dit soort dingen willen bouwen.
dat is waar maar aldoende leert men toch? Hier op het forum krijg ik goede adviezen waar ik wat mee kan. Ermee spelen(praktijk dus) is (soms) beter dan eerst een boek lezen... (toffenboy bedankt voor je snelle reactie en moeite)

Bovendien vroeg whoami om wat relevante code te posten. Dat heb ik gedaan, maar dan maakt het toch niet uit hoe deze code tot stand is gekomen, of sterker nog: of de poster het begrijpt of niet? ik heb als doel om dit werken te krijgen en als ik het dan ook nog snap uiteindelijk dan is dat mooi meegenomen

[ Voor 12% gewijzigd door Verwijderd op 22-11-2003 15:36 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

In dit geval denk ik dat ik met EfBe eens moet zijn; je leert jezelf zo compleet verkeerde manieren aan. Je kopieert het, zonder te weten wat je doet.

Waarom gebruik je try-catch-finally statements?
Waarom doe je zo veel moeite om een repeater te vullen, als je hem toch per definitie op visible = false zet?
Waarom vang je exceptions op deze manier op?
Waarom gebruik je deze manier om connectionstrings te maken?
Waarom maak je per defintie een OleDbConnection aan, ook al ga je hem niet gebruiken?
En, idd, wat EfBe ook zegt: Waarom maak je geen gebruik van SelectedIndexChanged-event van een DropDownList?
Bovendien vroeg whoami om wat relevante code te posten. Dat heb ik gedaan, maar dan maakt het toch niet uit hoe deze code tot stand is gekomen, of sterker nog: of de poster het begrijpt of niet? ik heb als doel om dit werken te krijgen en als ik het dan ook nog snap uiteindelijk dan is dat mooi meegenomen
Dus wij mogen het eigenlijk een beetje jouw probleem gaan oplossen? :?
In dat geval heb ik genoeg geholpen. :/
* gorgi_19 gaat niet andermans werk doen, zonder betaald te krijgen.

[ Voor 88% gewijzigd door gorgi_19 op 22-11-2003 15:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 22 november 2003 @ 15:30:
Dus wij mogen het eigenlijk een beetje jouw probleem gaan oplossen? :?
In dat geval heb ik genoeg geholpen. :/
* gorgi_19 gaat niet andermans werk doen, zonder betaald te krijgen.
wat versta jij dan onder een forum? een forum is toch om te helpen met bepaalde onderwerpen? als je niet wil helpen dan moet je gewoon niet reageren toch

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 22 november 2003 @ 15:47:
[...]

wat versta jij dan onder een forum? een forum is toch om te helpen met bepaalde onderwerpen? als je niet wil helpen dan moet je gewoon niet reageren toch
Helpen, zodat de topicstarter wil leren, akkoord. Daarvoor wil ik hem een schop geven in de goede richting

Helpen, omdat de topicstarter het niet kan, maar alleen z'n werk af wil hebben, desnoods door een ander gedaan, daar pas ik voor. Doel moet zijn te leren.

En jouw opmerking
ik heb als doel om dit werken te krijgen en als ik het dan ook nog snap uiteindelijk dan is dat mooi meegenomen
Plaats ik duidelijk onder het 2e. Daarvoor mogen ze mij dan ook voor gaan inhuren.

[ Voor 10% gewijzigd door gorgi_19 op 22-11-2003 15:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 22 november 2003 @ 15:49:
[...]

Helpen, zodat de topicstarter wil leren, akkoord. Daarvoor wil ik hem een schop geven in de goede richting

Helpen, omdat de topicstarter het niet kan, maar alleen z'n werk af wil hebben, desnoods door een ander gedaan, daar pas ik voor. Doel moet zijn te leren.

En jouw opmerking

[...]

Plaats ik duidelijk onder het 2e. Daarvoor mogen ze mij dan ook voor gaan inhuren.
eyeforaneye constateert dat een discussie met gorgie niet mogelijk is. ik zou zeggen tegen whoami gooi hem maar dicht dan...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

:/

* gorgi_19 heeft een aantal kritische vragen over je code gesteld, van zaken die imho niet kloppen. Als je daarop weigert te antwoorden en geen argumentatie geeft van die werkwijze, denk ik idd dat een discussie zinloos is ja.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
De bedoeling van GoT is niet dat anderen jou werk/taak gaan maken of jouw problemen gaan oplossen.
De bedoeling van GoT is dat mensen elkaar helpen bij dingen die ze niet begrijpen, dat men bijleert van elkaar, ....

De bedoeling is dus, zoals gorgi_19 al gezegd heeft: dat je bijleert. Als iedereen hier zomaar zijn werk post, en verwacht dat anderen het volledig voor hem oplossen, dan zullen mensen zoals gorgi_19, EfBe, en nog tal van anderen die niet in dit topic posten (of die zelfs niet eens in P&W komen) het vlug voor gezien houden.

Ik kan je dus enkel maar de raad geven dat je de tip van EfBe ter harte neemt, en eens wat tutorials gaat volgen zodanig dat je de basisprincipes onder de knie hebt, want als je dat niet hebt, dan zal je hier binnen enkele dagen opnieuw staan met een ander probleem dat je niet snapt, en zal je opnieuw verwachten dat anderen jouw probleem voor jou gaan oplossen en zal je opnieuw niet de moeite willen doen om iets bij te leren.
Als je wilt dat anderen het werk voor jou doen, dan kan ik je enkele namen van firma's geven die dat met plezier voor jou zullen doen, je zult er echter wel minimaal 60euro/uur moeten voor betalen.

Daarnaast heb ik nog een andere tip voor jou:
parametrized queris

https://fgheysels.github.io/


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op 22 november 2003 @ 15:28:
dat is waar maar aldoende leert men toch? Hier op het forum krijg ik goede adviezen waar ik wat mee kan. Ermee spelen(praktijk dus) is (soms) beter dan eerst een boek lezen... (toffenboy bedankt voor je snelle reactie en moeite)
Nee het is niet aldoendeleertmen. Ik ga nl. nooit meer een vraag van jou beantwoorden omdat je te beroerd bent om zelf wat kennis tot je te nemen. JA dat kost tijd en moeite, maar iedereen die jouw vragen kan beantwoorden heeft die moeite wel genomen, dus waarom jij niet? Je stelt de vraag of de code wat beter gemaakt kan worden. Ik dacht, ach waarom niet... maar toen ik daarmee bezig was dacht ik: waar de f*ck ben ik mee bezig, de persoon die dit inelkaar geflanst heeft snapt er werkelijk geen jota van.

Ik kan dan wel 2 routines posten, maar daar heb jij geen moer aan, je hebt nl. basiskennis als 'eventhandler', string operators etc. niet onder de knie.
Bovendien vroeg whoami om wat relevante code te posten. Dat heb ik gedaan, maar dan maakt het toch niet uit hoe deze code tot stand is gekomen, of sterker nog: of de poster het begrijpt of niet? ik heb als doel om dit werken te krijgen en als ik het dan ook nog snap uiteindelijk dan is dat mooi meegenomen
Jij stelt een vraag of de code verbeterd kan worden. Als jij de originele code al niet begrijpt (want als je dat wel gedaan had, had je niet die code gepost, die werkt nl. voor geen meter en er zit GEEN logica achter), hoe denk jij dan de nieuwe code te begrijpen???

Weet je hoe jouw vraag en code overkomt? Zo:
Ik snap er geen reet van, ben te beroerd om wat docs en boeken te lezen en vraag de mensen op GoT eventjes om het voor me recht te breien.

Simpele vragen waar je even niet uitkomt, no problem. Hele lappen code rechtcoden omdat de persoon die het inelkaargesleurd heeft er geen jota van begrijpt en ook geen moeite heeft gedaan dat te gaan doen in de nabije toekomst vind ik in ieder geval thuishoren onder parasiteren en niet het vragen om hulp.

Maar misschien is er een andere gek die je wel helpt.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com

Pagina: 1