13. februar 2007 - 09:57
Der er
20 kommentarer og 1 løsning
Data fra database skal bruges som data i et array
Skal have data fra database over til et array - men det vil ikke som jeg gerne vil. Her følger lidt kode: Dim DemoArray as Byte() Felt1 fra database er = 0,2,35,22,7,2,77,0,3,9 Værdi fra database hentes via SqlDataReader, således Do Array = Reader("Felt1") Loop While Reader.Read Det giver fejlen: et objekt af typen "System.String" kan ikke konverteres til typen "System.Byte", det samme gælder hvis DemoArray er string etc., Hvad gør jeg galt? ???:-) karsten_larsen
Annonceindlæg fra Cognizant
13. februar 2007 - 10:00
#1
Convert.ToByte(Reader("Felt1")) har ikke lige tjekket om den metode findes, men vil gætte på convert klassen kan
13. februar 2007 - 10:01
#2
hvis du er heldig kan du lave (Byte)Reader("Felt1") men ved det ikke. vil gætte på dit felt1 er varchar eller sådan noget
13. februar 2007 - 10:08
#3
ja feltet er varchar
13. februar 2007 - 10:09
#4
"DemoArray er string etc., " Der kan det ikke have været samme fejl, men måske skrev den at den ikke kunne konvertere object til string? i så fald vil dette virke Dim DemoArray as string() (ved ikke om string skal være String i VB) og (string)Reader("Felt1") igen så ved jeg ikke om string skal være stort og småt i VB.. men du skal typecaste det du hiver ud.
13. februar 2007 - 10:11
#5
næhe det vil ikke virke - Value af type byte cannot be converted to 1-demensional array of byte
13. februar 2007 - 10:15
#6
nu er der også lidt rod i din egen kode. du opretter DemoArray men gemmer i Array det er en ting.. og så tjekker jeg lige om ikke også du skal angive positioner i sådan et array der.
13. februar 2007 - 10:15
#7
Dim DemoArray as string() DemoArray = Convert.ToString(Reader("Felt1")) eller DemoArray = Reader("Felt1").ToString Giver sammen fejl Value af type string cannot be converted to 1-demensional array of string
13. februar 2007 - 10:18
#9
lige nu prøver du at gemme feltets indhold som et DemoArray og altså ikke indholdet af feltet i en position i dit array.. derfor fejlen.
13. februar 2007 - 10:23
#10
okay - det kan jeg godt se, men det betyder at jeg gemmer hele Felt1 i position 0 i DemoArray, for når jeg henter DemoArray (0). Så hvis det skal blive til følgende DemoArray(0) = 0 DemoArray(1) = 2 DemoArray (2)= 35 hvordan så?
13. februar 2007 - 10:26
#11
Hvis det er okay med dig så kan du lave en ArrayList. Dim DemoArray As New ArrayList() så virker dette DemoArray.Add((string)Reader("Felt1")) og igen.. måske skal string være med stort S:)
13. februar 2007 - 10:28
#12
ps. du skal importere System.Collections;
13. februar 2007 - 10:30
#13
Prøver lige
13. februar 2007 - 10:33
#14
DemoArray = DemoArray.Add((string)Reader("TestResultUnScored")) accepteres ikke i VB
13. februar 2007 - 10:34
#15
skal også kun være DemoArray.Add((string)Reader("TestResultUnScored"))
13. februar 2007 - 10:47
#16
hmm - det er så lige til i asp 3.0 men selv simple ting kan give bøvl her i .Net Prøver helt forfra. Dim Data as string Data = Reader("Felt1").ToString.Trim Så burde jeg vel kunne splitte Data om til et Array sådan her Dim DataArray as byte DataArray = Split(Data,",") også burde DataArray(2) give værdie 35 Er det ikke rigtigt forstået?
13. februar 2007 - 10:52
#17
ja hvis dit felt1 altså bare var en kolonne som indholdt hele denne streng (0,2,35,22,7,2,77,0,3,9) men du bliver nød til at lave dit DataArray til et string array.. eller char og derefter convertere indholdet til byte. men du har forstået det rigtigt.
13. februar 2007 - 11:03
#18
Du mener sådan her Dim Data as string Data = Reader("Felt1").ToString.Trim Dim DataArray as string DataArray = Split(Data,",") Ctype(DataArray(2),String)Integer skal så give 35
13. februar 2007 - 11:08
#19
du læser en værdi fra dit array sådan her DataArray.Item(x)
13. februar 2007 - 13:55
#20
gawi - vil du lave et svar jeg fik det til at virke. Mange tak for hjælpen
13. februar 2007 - 14:00
#21
selv tak:)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.