Avatar billede systemnissen Nybegynder
01. juli 2003 - 11:24 Der er 5 kommentarer og
1 løsning

CheckedListBox skal læse værdier fra database

ok, denne er lidt kryptisk.

Jeg skal læse data fra en SQL DB og vise disse data i en "CheckedListBox" så langt så godt. MEN disse data skal holdes op mod data fra en anden tabel og de data som findes begge steder skal "checkmarkes" i min CheckedListBox. Er dette forståeligt??

Der er 90 point til et godt svar...

Mvh
Systemnissen
Avatar billede systemnissen Nybegynder
01. juli 2003 - 11:26 #1
Sorry... ovenstående laves i VB.Net.
Avatar billede roth Nybegynder
01. juli 2003 - 18:05 #2
Jeg har lavet et lille eksempel .. det kan sikkert gøres meget bedre, men det virker da :)
Jeg har en database, testdb. Der er to tabeller, tabel1 og tabel2. Begge tabeller har to felter, id og value. Testdata i tabellerne ser således ud:
Table1:
id          value                                             
----------- ----------
1          test1
2          test2
3          test3
4          test4
5          test7
6          test1

Table2:
id          value                                             
----------- ----------
1          test1
2          test2
3          test8
4          test9
5          test10
**********
Så har jeg lavet en lille asp.net side med vb.net som codebehind. På siden er der udelukkende en checkboxlist. Eneste attribut jeg har ændret på den er navnet, den hedder nu chkboxlst.
Følgende kode er smidt ind i code behind:

**********************************
    Dim strConnection As String = "user id=sa;password=;database=tempdb;server=localhost;connect timeout=30"
    Protected WithEvents chkboxlst As System.Web.UI.WebControls.CheckBoxList
    Dim objConnection As New SqlConnection(strConnection)

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        objConnection.Open()
        Dim dt1 As DataTable = getDataTable("SELECT DISTINCT value FROM table1")
        Dim dt2 As DataTable = getDataTable("SELECT DISTINCT value FROM table2")

        Dim dr As DataRow
        Dim i, j As Integer
        j = 0
        For Each dr In dt1.Rows
            chkboxlst.Items.Add(CStr(dr.Item(0)))
            For i = 0 To dt2.Rows.Count - 1
                If CStr(dr.Item(0)) = CStr(dt2.Rows(i).Item(0)) Then
                    chkboxlst.Items(j).Selected = True
                End If
            Next
            j += 1
        Next
        objConnection.Close()
    End Sub

    Public Function getDataTable(ByRef strSQL As String) As DataTable
        Dim objDataAdapter As New SqlDataAdapter(strSQL, objConnection)
        Dim objDataTable As New DataTable()
        objDataAdapter.Fill(objDataTable)
        Return objDataTable
    End Function

    Public Function getDataRow(ByRef strSQL As String) As DataRow
        Dim objDataRow As DataRow
        Dim objDataTable As DataTable
        objDataTable = getDataTable(strSQL)
        If objDataTable.Rows.Count > 0 Then
            objDataRow = objDataTable.Rows(0)
        End If
        Return objDataRow
    End Function
******************************

og resultatet er at der er 5 checkboxe, test1, test2, test3, test4 og test7
og boxene test1 og test2 er checked.

Var det noget i den stil du skulle bruge?
Avatar billede systemnissen Nybegynder
02. juli 2003 - 10:55 #3
Det tror jeg... jeg vil lige prøve det af.

Foreløbig tak!
Avatar billede roth Nybegynder
02. juli 2003 - 12:56 #4
Allrighty, lemme know :)
Avatar billede systemnissen Nybegynder
08. juli 2003 - 12:33 #5
Jeg har ændret lidt på "kravene"... Der skal nok falde lidt flere point af...

Jeg har oprettet et array som henter mine data. Disse bliver listet i min CheckedListBox og det ser fint ud. MEN nu vil jeg så holde alle disse værdier op imod en ekstern tabel og de værdier som stemmer overens med denne skal "markeres" i checklistboxen. Mit array er oprettet som et "object" og ikke som et array...

Er ovenstående forståeligt??

Mvh
Systemnissen
Avatar billede systemnissen Nybegynder
10. juli 2003 - 10:43 #6
Jeg lukker denne da opgaven har ændret sig en del... men du får pointene da du har lagt et stort arbejde i at hjælpe mig... tak for det!

Systemnissen
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
Kurser inden for grundlæggende programmering

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