---
title: "Kategorier från databasen visas inte i dropdownlist"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/88081-kategorier-från-databasen-visas-inte-i-dropdownlist"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "m_soderlund"
published: "2003-10-09T14:12:58.000Z"
updated: "2003-10-10T07:26:18.000Z"
replies: 1
views: 220
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/88081-kategorier-från-databasen-visas-inte-i-dropdownlist"
---

# Kategorier från databasen visas inte i dropdownlist

## #1 — m_soderlund, 2003-10-09T14:12Z

När jag vill redigera en länk på min sida så vill jag lista unika kategorier från en tabell i databasen där en massa länkar finns.

I en codebehind-sida som heter links.vb så har jag klassen edit_link som ärver UserControl. I denna klass har jag proceduren choose_cat som ska visa information i en dropdownlist på sidan, och dropdownlistan finns i edit.ascx.
Nu är det så att inga kategorier visas i dropdownlistan, inte ens de manuellt tillaggda listposterna "Välj" och det tomma utrymmet
finns med. Vad kan vara problemet? ddlBox måste ju vara tom på nåt sätt när jag anger den som datakälla till choose_cat. :(

```
Public Class edit_link : Inherits UserControl

protected withevents choose_cat as new dropdownlist
protected Withevents tbl_links_edit as repeater

Function fix(str)
        str = Replace(str,"'","")
        fix = str
End Function

    Sub Page_Load(sender as object, e as eventargs)
        choose_category()
        edit()
    End Sub

    'lista kategorier
    Sub choose_category()

        'plocka ut unika kategorier ut lÃ¤nktabellen
        Dim SQL As string = "SELECT DISTINCT Category FROM tbl_links"

        Dim Cn As OleDbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("db_links.mdb"))
        Dim Cm As OleDbCommand = new OleDbCommand(SQL,Cn)

        Cn.Open()

        'skapa ett OleDbDataReader-objekt
        Dim objDataReader As OleDbDataReader = Cm.ExecuteReader()

        [red]'skapa en ny samling av listposter (option-val i dropdownlistan i default.aspx)
        Dim ddlBox As new ListItemCollection

        'ddlBox.Add(new ListItem("VÃ¤lj"))
        'ddlBox.Add(new ListItem())

        while(objDataReader.Read())
            'lÃ¤gg till val i kategoridropdownlistan
            ddlBox.Add(new ListItem(objDataReader("category").toString()))
        end while

        'bind data till dropdownlistan
        choose_cat.DataSource = ddlBox
        choose_cat.DataBind()[/red]

        'stÃ¤ng objekt
        objDataReader.Close()
        Cn.Close()

    End Sub

    'redigera lÃ¤nk
    Sub edit()

        Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("db_links.mdb"))
        Dim SQL As string = "SELECT url,sitedescription FROM tbl_links WHERE Id=" & fix(Request.Querystring("id"))

        Dim Cm As New OleDbCommand(SQL,Cn)
        Dim dbRead As OleDbDataReader

        Dim Container As object
            Cn.Open()
            dbRead = Cm.ExecuteReader()

            tbl_links_edit.DataSource = dbRead
            tbl_links_edit.DataBind()

            dbRead.Close()
            Cn.Close()
    End Sub

    'utfÃ¶r redigering av lÃ¤nk
    Sub performedit(sender as object,e as eventargs)

        Dim eUrl As string = fix(Request.Form("url"))
        Dim eDescription As string = fix(Request.Form("description"))
        Dim eCategory As string = choose_cat.SelectedItem.toString

        If eCategory = "" Then eCategory = fix(Request.Form("alt_category"))

        Dim SQL As string = "UPDATE tbl_links SET URL='" & eURL & "',SiteDescription='" & eDescription & "',Category='" & eCategory & "' WHERE Id=" & fix(Request.Querystring("id"))
        Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("db_links.mdb"))

        Dim Cm As New OleDbCommand(SQL,Cn)
        Cm.Connection.Open()
        Cm.ExecuteNonQuery()

        Cn.Close
        Response.Redirect("default.aspx?action=edit&id=" & Request.Querystring("id") & "&cat=" & Request.Querystring("cat"))

    End Sub

End Class
```

edit.ascx:

```
<% Control Language="VB" Inherits="edit_link" src="links.vb" %>

<asp:repeater id="tbl_links_edit" runat="server">

<HeaderTemplate>
<span class="head">Redigera lÃ¤nk</span>
</HeaderTemplate>

<ItemTemplate>
<p>
URL:
<br />
<input type="text" size="40" value='<%# Container.DataItem("url") %>' name="url" />
<br />
<br />
Namn:
<br />
<input type="text" size="40" value='<%# Container.DataItem("SiteDescription") %>' name="description" />
<br />
<br />
Kategori:
<br />
<asp:DropDownList id="choose_cat" runat="server"></asp:DropDownList>
<input type="text" size="30" name="alt_category" />
</p>
<asp:button onClick="performedit" text="Uppdatera" runat="server" />

</ItemTemplate>
</asp:repeater>
```

I sidan default.aspx har jag en placeholder där edit.ascx laddas.

Permalänk: https://www.webforum.nu/p/88081

## #2 — m_soderlund, 2003-10-10T07:26Z

Problemet är löst, jag satte dropdownlistan i edit.ascx *utanför* Repeatern, och då fungerade det. :) Nu återstår bara att försöka få kategorivärdet i databasen för den länk jag ska redigera att vara markerat när man kommer till redigera-sidan. :)

```
<% Control Language="VB" Inherits="edit_link" src="links.vb" %>

<asp:repeater id="tbl_links_edit" runat="server">

<HeaderTemplate>
<span class="head">Redigera lÃ¤nk</span>
</HeaderTemplate>

<ItemTemplate>
<p>
URL:
<br />
<input type="text" size="40" value='<%# Container.DataItem("url") %>' name="url" />
<br />
<br />
Namn:
<br />
<input type="text" size="40" value='<%# Container.DataItem("SiteDescription") %>' name="description" />
</p>
</ItemTemplate>
</asp:repeater>
Kategori:
<br />
<asp:DropDownList id="choose_cat" runat="server"></asp:DropDownList>
<input type="text" size="30" name="alt_category" />
</p>
<asp:button onClick="performedit" text="Uppdatera" runat="server" />
```

Permalänk: https://www.webforum.nu/p/1181233

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/88081-kategorier-från-databasen-visas-inte-i-dropdownlist
