Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Tekstilaatikosta lukuarvo kantaan? VB2008, Access 2007

Sam76 [04.08.2008 13:54:55]

#

Nojoo, tämä saattaa taas naurattaa kokeneempia mutta kysynpä kuitenkin.

Elikkäs, pitäisi saada erilaisia lukuja tietokantaan(access). Törmäsin kerran aiemminkin tähän ongelmaa ja ratkaisin sen silloin siten, että tallensin luvut textbox:sta stringinä kantaan jossa sarakkeen muotona oli teksti. Siis luvut tekstinä kantaan. Tämä siis toimii MUTTA sen vähän, mitä tiedän tietokannoista niin olen ymmärtänyt, että lukujen tallentamisessa kantaa stringinä ei ole kovinkaan paljoa järkeä. Miten luvut kannattaisi siis sinne tallentaa? Olen yrittänyt seuraavaa mutta ei toimi

Dim luku1 as double
luku1 = textbox1.text ' tästä tulee valitusta, myöskään textbox1.ToString ei toimi
 ' ja tässä olisi sitten se tietokanta yhteys jne.

Kannassa sarakkeen arvoksi olen laittanut luku -> desimaaliluku. Tämä ei siis toimi eli voisiko joku kertoa miten lukujen tallentaminen olisi selkeintä ja järkevintä?

Grez [04.08.2008 14:12:27]

#

Kokeile laittaa

Dim luku1 as double
luku1 = CDbl(textbox1.Text)

Sitten tietty tuostakin tulee valitusta, jos se ei ole oikeasti numeerisessa muodossa.

Sam76 [04.08.2008 17:40:03]

#

Kiitos, tuollahan saa doublen pelaamaan. Mitenköhän se menee sitten integerin kanssa? En löytänyt konvertointia integeriksi. Saahan sen tietty siten, että asettaa accesissa sarakkeen arvoksi kokonaisluku, jolloin luku tallentuu ns. integerinä. Kuulostaa vaan vähän purkkasysteemiltä.

Toinen kyssäri: millä tavalla syötteen tarkistus kannattaisi tehdä? Siis se että tarkistetaan jo siinä textbox:ssa että syöte on integer tai double-tyyppistä?

Grez [04.08.2008 17:49:28]

#

CInt(teksti) tai CType(teksti, Integer)
IsNumeric(teksti)

CDbl(Teksti) tilallakin voi käyttää CType(teksti,Double)

Ja IsNumeric ei tarkista, mahtuuko luku esimerkiksi integer muuttujaan. Voit tehdä seuraavasti:

Dim luku As Integer
If Integer.TryParse(Textbox1.text, luku) Then
    MsgBox("Luku oli OK 32-bit kokonaisluku")
Else
    MsgBox("Annettu teksti ei ollut luku tai se oli liian iso 32-bittiseksi kokonaisluvuksi, tms. häikkää")
End If

Sam76 [04.08.2008 18:41:05]

#

Kiitos. Nyt rullaa :)

Vastaus

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

Tietoa sivustosta