Avatar billede heman.dk Nybegynder
21. april 2005 - 13:15 Der er 10 kommentarer og
2 løsninger

fejl ved tom databasefelt.

Jeg får følgende fejl (Den angivne ændring er ugyldig), når jeg kører et databasekald hvor databasefeltet er tomt. Den kan alligevel godt kører et andet kald hvor et andet felt er tomt. Hvordan kan det værer? Og er der mulighed for at tjekke om et databasefelt indeholder data, inden man skriver det i en tekstbox?

/Henrik

Koden:

string sql = "select * from medlemmer where medlemid = " + soegbox.Text;
OleDbCommand kommando = new OleDbCommand(sql,Database);
Database.Open();
OleDbDataReader myReader = kommando.ExecuteReader();
    if (myReader.HasRows)
    {
    while (myReader.Read())
        {
        soegbox.Clear();
        navnbox.Clear();
        adressebox.Clear();
        postnummerbox.Clear();
        bybox.Clear();
        tlfbox.Clear();
        mailbox.Clear();
        infobox.Clear();                                   
                   
        medlemidbox.Text = myReader.GetInt32(0).ToString();
        navnbox.Text = myReader.GetString(1);
        adressebox.Text = myReader.GetString(2);
        postnummerbox.Text = myReader.GetInt32(3).ToString();
        bybox.Text = myReader.GetString(4);
        tlfbox.Text = myReader.GetInt32(5).ToString();
        infobox.Text = myReader.GetString(7);
        mailbox.Text = myReader.GetString(6);
                   
        }
    }
Avatar billede arne_v Ekspert
21. april 2005 - 13:18 #1
if(myReader.IsDBNull(kolonne)) {
  ...
}

eller

if(myReader.GetString(kolonne)!="") {
  ...
}
Avatar billede heman.dk Nybegynder
21. april 2005 - 13:25 #2
den laver stadig bøbl. (o:

Følgende fejl forekommer når jeg kører en debug:
GetString    error: identifier 'GetString' out of scope   

/Henrik
Avatar billede arne_v Ekspert
21. april 2005 - 13:35 #3
Ved hvilken linie ?
Avatar billede nielle Nybegynder
21. april 2005 - 13:45 #4
Husk på at OleDbDataReader altid skal afsluttes:

myReader.Close();

Ellers har den en ulykkelig tendens til at fejle næste gang at man køre.
Avatar billede heman.dk Nybegynder
21. april 2005 - 13:52 #5
linie? Fejlen sker når jeg kører adressebox.Text = myReader.GetString(2);
Men hvis jeg sætter din if-sætning ind, så sker fejlen bare i den istedet.

Den bliver lukket i næste linje, sammen med myReader.

/Henrik
Avatar billede arne_v Ekspert
21. april 2005 - 21:23 #6
Kan du poste noget mere kode

Vi mangler vist en brik til puslespillet
Avatar billede nielle Nybegynder
29. april 2005 - 10:25 #7
heman.dk ?
Avatar billede heman.dk Nybegynder
29. april 2005 - 11:55 #8
Hey! Undskyld den lange svartid. Problemet var at den ikke sendte noget data tilbage, så den kunne kontrollere  myreader(kolonne). Problemet er dog løst; der kommer aldrig til at kunne være et tomt felt i databasen, for når personen bliver oprettet, sker der tjeks på alle felter, så der skal stå noget i felterne før der bliver uploadet til databasen.

Det underlige var, at jeg hentede data fra to celler; begge to var tomme, men det var kun den ene der gav en fejl. De blev begge sendt tilbage på samme måde, de var begge sat til tekst og havde de helt samme opsætninger i Access-databasen...

Men jeg har slettet koden, så jeg kan desværre ikke sende den til jer så I kan finde problemet; er der mulighed for at jeg kan give jer begge points for jeres hurtige svar og forsøg på at løse endnu et af mine problemer? (o:

/Henrik
Avatar billede arne_v Ekspert
29. april 2005 - 17:15 #9
jep
Avatar billede nielle Nybegynder
29. april 2005 - 17:37 #10
:^)
Avatar billede nielle Nybegynder
29. april 2005 - 17:37 #11
Suk...
Avatar billede heman.dk Nybegynder
29. april 2005 - 23:44 #12
tja.., suk suk... (o: Men tak for hjælpen til jer begge alligevel!

/Henrik
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