Avatar billede _et Praktikant
09. december 2007 - 17:51 Der er 6 kommentarer og
1 løsning

læsning af tomt felt fra Access DB giver exception - Skal Undgåes

Jeg har en funktion der læser noget indhold fra en access database, men når jeg læser et tomt felt fra en row bliver der kastet en exception. Hvordan undgår jeg det? Enten ved at fange at feltet er tomt eller så den til at være ligeglad.

Kort sagt: Hvis feltet fra DB er tomt skal feltet i List være tomt.

Her er koden.

OleDbConnection aConnection;
OleDbCommand aCommand;
List<String[]> data = new List<string[]>();
List<string> slettes = new List<string>();
aCommand = new OleDbCommand("select ID, Navn from KundeKartotek", aConnection);

private void Addr_getFromDB()
{
    try
    {
        OleDbDataReader aReader = aCommand.ExecuteReader();

        if (aReader.HasRows)
        {
            while (aReader.Read())
            {
                int antal = aReader.FieldCount;
                string[] Row = new string[20];
                Row[0] = aReader.GetInt32(0).ToString();
                Row[1] = aReader.GetString(1).ToLower();
                Row[2] = aReader.GetInt32(2).ToString();
                Row[3] = aReader.GetString(3).ToLower();
                data.Add(Row);
            }

        }
        aReader.Close();
    }
    catch (Exception xe)
    {
        MessageBox.Show(xe.Message, "Fejl");
    }
}
Avatar billede kalp Novice
09. december 2007 - 17:57 #1
while (aReader.Read())
            {
                int antal = aReader.FieldCount;
                string[] Row = new string[20];
                if(aReader.GetInt32(0) is DBNull)
                  Row[0] = "";
                else
                  Row[0] = aReader.GetInt32(0).ToString();
                osv osv..
                data.Add(Row);
            }
Avatar billede kalp Novice
09. december 2007 - 17:58 #2
muligvis skal if tjekket laves sådan istedet.

if(aReader[0] is DBNull)
Avatar billede arne_v Ekspert
09. december 2007 - 18:24 #3
Den sidste bør virke, men jeg ville nok bruge:

if(aReader.IsDBNull(0))
Avatar billede _et Praktikant
16. december 2007 - 14:06 #4
Tak til jer begge det virkede.
svar lige
Avatar billede kalp Novice
16. december 2007 - 15:30 #5
:)
Avatar billede arne_v Ekspert
16. december 2007 - 17:11 #6
Kalps andet svar var rigtigt.

Jeg påpegede bare en alternativ måde at gøre det på.

Så giv kalp point.
Avatar billede _et Praktikant
17. december 2007 - 14:14 #7
Arne-v > den er jeg med på

Men tak aligevel til begge.
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