Avatar billede Kim Neesgaard Seniormester
03. februar 2005 - 15:52 Der er 9 kommentarer og
2 løsninger

'Systemværdier' i dropdowlist med SQL som datasource

Jeg vil fylde en dropdownliste med værdier fra en SQL forespørgsel (til SQL Server) og har gjort følgende:

Dim SQLTekst as SQLCommand
SQLTekst = New SqlCommand(strSQL, objConn )
Dim rs As SqlDataReader = SQLtekst.ExecuteReader()
rs.Read()
DDL.DataSource = rs
DDL.DataBind()

men det der vises i dropdowlisten er 'System.Data.Common.DbDataRecord' ligeså mange gange som der er records i recordsettet.

Hvis jeg sender nøjagtig det samme recordset til et DataGrid, så vises værdierne fint - hvad kan der være i vejen?
Avatar billede casper_skovgaard Nybegynder
03. februar 2005 - 16:13 #1
mangler du ikke at sætte DataTextField og DataValueField
Avatar billede Kim Neesgaard Seniormester
03. februar 2005 - 16:39 #2
Jo - det lyder rigtigt! Hvordan sætter jeg dem i det aktuelle tilfælde?
Avatar billede casper_skovgaard Nybegynder
03. februar 2005 - 17:52 #3
Jeg er ikke sikker i min sag, men gætter på dette:

DDL.DataTextField = rs["TextField"]
DDL.DataValueField = rs["ValueField"]
Avatar billede Kim Neesgaard Seniormester
03. februar 2005 - 19:16 #4
Nej - det er den ikke helt tilfreds med!
Avatar billede casper_skovgaard Nybegynder
03. februar 2005 - 21:51 #5
hmm virker heller ikke hos mig...

Istedet kan du sætte værdierne i html koden, det virker for mig.

eksempel:
<asp:DropDownList id="DropDownList1" runat="server" DataTextField="TextField" DataValueField="ValueField"></asp:DropDownList>
Avatar billede thor.ostergaard Nybegynder
04. februar 2005 - 12:38 #6
Det er fordi det hedder:
DDL.DataTextField = "Navnet på tekst kolonnen i tabellen"
DDL.DataValueField = "Navnet på value kolonnen i tabellen"
Avatar billede Kim Neesgaard Seniormester
04. februar 2005 - 15:51 #7
Jeg trækker kun een kolonne ud med feltnavnet 'Name' og derfor har jeg prøvet med:

DDL.DataTextField = "Name"
DDL.DataValueField = "Name"

men den giver meldingen:

System.Web.HttpException: DataBinder.Eval: 'System.Data.Common.DbDataRecord' does not contain a property with the name Name.

ved DDL.DataBind().
Avatar billede casper_skovgaard Nybegynder
04. februar 2005 - 16:04 #8
Er du sikker på at kolonnen hedder 'name' ?

Prøv evt. at readeren ind i et DataGrid, så kan du se hvad kolonnen hedder.
Avatar billede Kim Neesgaard Seniormester
04. februar 2005 - 16:22 #9
Oups... - jeg havde overset en 'as' i SQL'en og når jeg sætter den ind, så virker det smukt!! Tak!

Vil I afgive et par svar?
Avatar billede casper_skovgaard Nybegynder
04. februar 2005 - 20:05 #10
:)
Avatar billede thor.ostergaard Nybegynder
05. februar 2005 - 08:09 #11
OK
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