Avatar billede r.hegaard Nybegynder
13. juli 2006 - 17:37 Der er 4 kommentarer og
1 løsning

Problemer med GetInt32 på OleDbDataReader

Jeg bruger en OleDbDataReader til at læse fra min database.
I den forbindelse har jeg nogle heltal, som jeg skal have læst ind fra en tabel. Tallene brude ikke være null, men jeg tjekker alligevel for en sikkerheds skyld, om de er det.
Jeg har illustreret, hvordan jeg bruger min OleDbDataReader i følgende eksempel:

private static void test( OleDbDataReader dataReader , int number ) {
  if ( dataReader.IsDBNull( number ) ) Console.WriteLine( "null" );
  else Console.WriteLine( dataReader.GetInt32( number ) );
}

Hver gang jeg kører mit program, så går programmet i stå ved GetInt32 og giver fejlen "InvalidCastException was unhandled - Specified cast is not valid."
Jeg har også prøvet med GetInt64 og GetInt16.

Hvad gør jeg forkert eller hvad kan der været galt??
Avatar billede arne_v Ekspert
13. juli 2006 - 17:42 #1
prove med GetDecimal ?
Avatar billede arne_v Ekspert
13. juli 2006 - 17:43 #2
ellers udskriv

dataReader.GetValue(number).GetType().Name

og se hvad pokker det er
Avatar billede r.hegaard Nybegynder
13. juli 2006 - 23:18 #3
arne_v > Ja, det virkede, det var en byte. Jeg undrer mig så bare over, hvorfor GetInt32 ikke kan klare en byte og siger, at det er "cast is not valid". For der er vel ikke noget problem i at caste en byte til en Int32?
Lægger du et svar, så du kan få point?
Avatar billede arne_v Ekspert
13. juli 2006 - 23:41 #4
byte b = 123;
object o = b;

(int)o giver exception

(int)(byte)o virker fint
Avatar billede arne_v Ekspert
13. juli 2006 - 23:41 #5
svar
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