Avatar billede crunch Nybegynder
10. marts 2003 - 22:29 Der er 8 kommentarer og
1 løsning

Problem med string / integer ved db select

Hej

Hvordan er det lige man kan gøre nedenstående så det virker. Det skal siges at koden virker fint når jeg henter alle mine string felter fra db'en. Men nu er det sådan at jeg også gerne vil have min id med:

newListItem.Value = rdr.GetString(0)
- men det kan man ikke - og man må heller ikke skrive
newListItem.Value = rdr.GetInteger(0)


- og det kan jeg ikke fordi min strSQL er dimmensioneret som en streng..:
  Dim strSQL As String = "SELECT id, strTitle, strHtml FROM tblPageContentDynamic;"

- hvad gør jeg før at det virker ?? - jeg får en datatype mitchmash fejl når jeg prøver at hente nummeriske værdier..








If Not Page.IsPostBack Then
            Dim strConn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../db/db.mdb") & ";"
            Dim objConn As New OleDbConnection(strConn)
            Dim strSQL As String = "SELECT id, strTitle, strHtml FROM tblPageContentDynamic;"
            Dim objCmd As New OleDbCommand(strSQL, objConn)
            objConn.Open()
            Dim rdr As System.Data.OleDb.OleDbDataReader = objCmd.ExecuteReader()

            While rdr.Read()
                Dim newListItem As New ListItem()
                newListItem.Text = rdr.GetString(1)
                newListItem.Value = rdr.GetString(0)
                dropdownlist1.Items.Add(newListItem)
            End While
            objConn.Close()
        End If
    End Sub
Avatar billede guidmaster Nybegynder
10. marts 2003 - 22:34 #1
Kan du ikke få det til at virke hvis du siger:
newListItem.Value = Ctype(rdr.GetInteger(0),String)
Avatar billede burningice Nybegynder
10. marts 2003 - 22:54 #2
et opslag i SDK viser at Value er en string... du kan derfor enten gøre som guidmaster skriver, eller også bare

newListItem.Value = rdr.GetInteger(0).ToString()
Avatar billede crunch Nybegynder
10. marts 2003 - 23:05 #3
desværre ):

både:
newListItem.Value = CType(rdr.GetInteger(0), String)
og:
newListItem.Value = rdr.GetInteger(0).ToString()

retunerer fejlen:
'GetInteger' is not a member of 'system.data.oledbdatareader'.
Avatar billede burningice Nybegynder
10. marts 2003 - 23:12 #4
aah... hehe, lader til at vi skal lede et andet sted ;)

ms-help://MS.NETFrameworkSDK/cpref/html/frlrfsystemdataoledboledbdatareadermemberstopic.htm

nope, GetInteger er ikke en member til den klasse... dog findes der en GetInt32(), mon ikke det er den du søger?
Avatar billede guidmaster Nybegynder
10. marts 2003 - 23:24 #5
Avatar billede crunch Nybegynder
10. marts 2003 - 23:40 #6
tak - begge to (:
hvis i opretter et "svar" så giver jeg points'ne
Avatar billede burningice Nybegynder
10. marts 2003 - 23:54 #7
:)
Avatar billede guidmaster Nybegynder
11. marts 2003 - 08:49 #8
Jeg tror bare du skal smide dem til cyberfessor da det var ham der indså at der var tale en OleDbConnection ting :D
Avatar billede crunch Nybegynder
11. marts 2003 - 17:54 #9
alrighty then (-: tak alligevel.
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