Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL, VB.NET: VB 2005 .Net + MySqlDatareader + Checkedlistbox

Tapsa84 [07.09.2005 09:22:20]

#

Eli pitäisi saada checkedlistbox ruksaamaan käyttäjän aikaisemmin ruksaamansa tiedot. checkedlistboxin tiedot on haettu tietokannasta ja valuemember erottelee ne. Ruksattujen kohtien valuememberit on tallennettu aikaisemmin jo tietokantaan.

Nyt pitäisi saada ruksittua ne kohdat jotka käyttäjä on aikaisemmin ruksinut.

Aattelin tehdä sen loopilla, mutta siinä kusee nyt joku.

Eli aina kun myReader lukee yhden tiedon, pitäisi sitä verrata kaikkiin Checkedlistboxin ruksattavien kohtien ValueMemberiin ja mikäli se on sama ruksata se kohta, muuten myReader lukee seuraavan tiedon ja taas sitä pitäisi verrata kaikkiin Checkedlistboxin kohtiin.

Tuossa olis osviittaa miten sen meinasin tehdä, mutta jostain syystä tuo looppi rakenne ei nyt pelaa.

checked = CheckedListkoulut.Items.Count
While myReader.Read
     iii = myReader.Item("koulu").ToString
     For i = 0 To i = checked
        CheckedListkoulut.SelectedIndex = i
        ii = CheckedListkoulut.SelectedValue
        If iii = ii Then
          CheckedListkoulut.SetItemCheckState(i,
          ChecksState.Checked)
        Else
        End If
     Next
End While

peran [07.09.2005 21:27:26]

#

Muistaakseni VB:n syntaksi, jos basic ei ole paljoa muuttunut.

For i = 0 To checked

Todennäköisesti kuitenkin silmukka pyörähtää yhden kierroksen liikaa, joten se menneen:

For i = 0 To checked-1

Muuta koodia en osaa kommentoida, kun ite ohjelmoin C#:llä ja Monolla, mutta äkkiseltään näyttäisi olevan ainakin oikeaan suuntaan.

Tosin vb.NET:ssä merkkijonovertailut taitavat mennä jotenkin näin:

If iii.Equals(ii) Then

Ainakin C#:ssä joutuu vertailut tekemään funkkarin kautta, jotta vertaillaan arvoja eikä viitteiden osotteita.

Edit sehän voisi mennä myös jotenkin näin:

checked = CheckedListkoulut.Items.Count
While myReader.Read
     iii = myReader.Item("koulu").ToString
     CheckedListkoulut.SetItemCheckState(CheckedListkoulut.Items.IndexOf(iii),ChecksState.Checked)
End While

En tiedä toimiiko, mutta kokeilemisen arvoinen yritys.

Tapsa84 [08.09.2005 10:15:09]

#

Vastaampa ite omaan kysymykseen

checked = CheckedListkoulut.Items.Count
            While myReader.Read
                iii = myReader.Item("koulu").ToString
                For i = 0 To checked - 1
                    CheckedListkoulut.SelectedIndex = i
                    ii = CheckedListkoulut.SelectedValue.ToString
                    If iii.Equals(ii) Then
                        CheckedListkoulut.SetItemChecked(i, CheckState.Checked)
                    End If
                Next i
            End While

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta