Avatar billede sykofanten Nybegynder
28. maj 2008 - 23:15 Der er 5 kommentarer og
1 løsning

Error 1 'KontorAdminSys.Window1.GetOfficeByName(string)' not all

Hvad gør jeg galt? :D



kode fra Window1.xaml.cs:



private Office GetOfficeByName(string s)
        {
            try
            {
                IEnumerable<Office> query = from b in _dataDc.Offices select b;
                foreach (Office o in query)
                {
                    if (o.OfficeName.Equals(s))
                        return o;
                    else
                        return null;
                }
            }
            catch (Exception ex)
            {
                Console.Write("Error: " + ex.Message);
            }
        }



        private void btnA1_MouseEnter(object sender, MouseEventArgs e)
        {
            Office o = GetOfficeByName("A1"); // temp, for testing only
            btnA1.ToolTip = Convert.ToString(o.OfficeName);
        }



Her er de data jeg vil hente fra db.


http://img233.imageshack.us/img233/2010/linqprobug4.jpg
Avatar billede sykofanten Nybegynder
28. maj 2008 - 23:17 #1
nåja hele fejlmeddelelsen kom ikke lige med så her kommer den:

'KontorAdminSys.Window1.GetOfficeByName(string)': not all code paths return a value

(kan også ses på det ss)

:D
Avatar billede bvli Praktikant
29. maj 2008 - 01:19 #2
Din compilerfejl får du, fordi du ikke returnerer en værdi i din GetOfficeByName-metode, hvis ikke din linq query returnerer noget resultat. Altså du kommer ikke ind i foreach'en og så er der altså ikke noget return-statement.

Men du - prøv lige at kigge på din linq. Der er jo ikke nogen grund til at lave en selektion i din foreach hvis du sætter en where-clause på.

from b in _dataDc.Offices where b.OfficeName == s select b;

/B :)
Avatar billede sykofanten Nybegynder
29. maj 2008 - 01:24 #3
Tak for det :)

Hehe begynder vidst at se resultatet af 36 timer uden søvn.

Der var godt nok nogle fæle fejl imellem der.

Sådan skulle koden have set ud:

private Office GetOfficeByName(string s)
        {
            try
            {
                IEnumerable<Office> query = from b in _dataDc.Offices select b;
                foreach (Office o in query)
                {
                    if ((o.OfficeName).Equals(s))
                        return o;
                }
            }
            catch (Exception ex)
            {
                Console.Write("Error: " + ex.Message);
            }
            return null;
        }

Smid et svar bvli så får du pointsne. :D
Avatar billede sykofanten Nybegynder
29. maj 2008 - 01:32 #4
Nåja til mit forsvar, så er det første dag med linq :)
Avatar billede bvli Praktikant
29. maj 2008 - 01:45 #5
Ok..

Prøv:
var query = from b in _dataDc.Offices where b.OfficeName == s select b;
foreach (Office o in query) {
  return o;
}

/B :)
Avatar billede sykofanten Nybegynder
29. maj 2008 - 01:51 #6
har jeg allerede gjort. :)

Tak for hjælpen.
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