.
Anmeldung | Registrieren | Hilfe
in Suchen

Fehler: Nicht alle Codepfade geben einen Wert zurück

Letzter Beitrag 24. Mai 2012 8:23 von san-software. 4 Antworten.
Seite 1 von 1 (5 Treffer)
Beiträge sortieren: Zurück Weiter
  • 14. Mai 2012 19:20

    • Popobawa
    • Nicht gereiht
    • Registriert am 14. Mai 2012
    • Beiträge 2
    • Punkte 40

    Fehler: Nicht alle Codepfade geben einen Wert zurück

    Hallo, 

    aktuell beschäftige ich mich mit der .net Technologie. Mein Ziel ist es ein einfaches Filestream Zugriffsmöglichkeit zu realisieren. In ein Fachbuch (teures Fachbuch..) fand ich ein passendes Beispiel, jedoch kommt die obige Fehlermeldung immer. Meines Wissens nach erwartet er einen Rückgabewert, den ich jedoch definiert habe. 

    Hier der Quelltext, weißt einer einen Rat? 

    [code]
    public int storeFileInDatabase(string FullFilename)
        {
       //SQL Anweisung
       const string SQL = " INSERT FileStore (Dateiname, Erweiterung, BLOB) " +
                      " OUTPUT INSERTED.IDENTITYCOL " +
                      " VALUES (@Dateiname, @Erweiterung, @Blob);";


       try
       {
                string strCon = @"server=win-qmqlki32t7n\sharepoint3; uid=Administrator; pwd = ; trusted_connection=true; database=FilestreamDB;";
                using (SqlConnection con = new SqlConnection(strCon))
       {
       //Datenbankverbindung öffnen
       con.Open();
       using (SqlCommand cmd = con.CreateCommand())
       {
                            cmd.CommandType = System.Data.CommandType.Text;
       cmd.CommandText = SQL;
       // Werte für Parameter der T-SQL-Anweisung ermitteln
       string Dateiname = Path.GetFileNameWithoutExtension(FullFilename);
       string Erweiterung = Path.GetExtension(FullFilename);


       
       cmd.Parameters.AddWithValue("Dateiname", Dateiname);
       cmd.Parameters.AddWithValue("Erweiterung", Erweiterung);

       int filelength = (int) (new FileInfo(FullFilename)).Length;
       byte[] buffer = new byte[filelength];

       using (StreamReader sr = new StreamReader(FullFilename))
       sr.BaseStream.Read(buffer, 0, filelength);
       cmd.Parameters.AddWithValue("Blob", buffer);
       return (int)cmd.ExecuteScalar();
                            
                        }
       }
       }
       catch (SqlException ex)
       {}
       catch (FileNotFoundException ex)
       {}

       catch(IOException)
       {}
       catch (Exception ex)
       {}
        }
    [/code]  

    Vielen Dank im Voraus. 

    • IP-Adresse ist Registriert
  • 14. Mai 2012 20:18 Antwort zu

    • klaus_b
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 28. Jan 2008
    • Waldkraiburg
    • Beiträge 764
    • Punkte 12.255
    • Moderator

    Fehler: Nicht alle Codepfade geben einen Wert zurück

    Antworten

    Hallo und herzlich Willkommen im Forum,

    dein Problem ist nicht wirklich eines.
    Du hast die Verarbeitung der SQL-Abfrage in einen try-Block gepackt und gibst dort auch das Ergebnis der Scalar-Abfrage zurück. Soweit OK. Was aber, wenn vor der Rückgabe eine Ausnahme auftritt? Dann wird die auftretende Ausnahme spätestens im letzten catch-Block aufgefangen, aber nichts wird zurückgegeben.
    Lange rede, kurzer Sinn: Füge nach dem letzten catch-Block ein return 0 oder -1 ein, so dass auf jeden Fall ein Wert zurückgegeben wird.

    Servus,
    Klaus

    klaus_b@.NET
    Alles was an .NET und C# Spass macht, ... oder manchmal auch nicht.
    • IP-Adresse ist Registriert
  • 15. Mai 2012 15:20 Antwort zu

    • Popobawa
    • Nicht gereiht
    • Registriert am 14. Mai 2012
    • Beiträge 2
    • Punkte 40

    Fehler: Nicht alle Codepfade geben einen Wert zurück

    Hallo und Danke für die schnelle Hilfe.

    Die Begründung leuchtet ein, wundere mich jedoch wie so ein Fehler in ein Fachbuch schafft. 

    Viele Grüße
    • IP-Adresse ist Registriert
  • 16. Mai 2012 7:51 Antwort zu

    • klaus_b
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 28. Jan 2008
    • Waldkraiburg
    • Beiträge 764
    • Punkte 12.255
    • Moderator

    Fehler: Nicht alle Codepfade geben einen Wert zurück

    Popobawa:
    <snip> wundere mich jedoch wie so ein Fehler in ein Fachbuch schafft.
    Betriebsblindheit? Wink
    Oder eben: nobody is perfect.

    Servus,
    Klaus

    klaus_b@.NET
    Alles was an .NET und C# Spass macht, ... oder manchmal auch nicht.
    • IP-Adresse ist Registriert
  • 24. Mai 2012 8:23 Antwort zu

    • san-software
    • Top 100 Mitwirkender
      Männlich
    • Registriert am 24. Jan 2008
    • Kulmbach
    • Beiträge 14
    • Punkte 235

    Fehler: Nicht alle Codepfade geben einen Wert zurück

    sowas hat man leider öfters in sogenannten Fachbüchern.

    Da wird schon mal ein Code einfach geschrieben, ohne getestet zu werden, und dann hat man einfach mal einen Befehl vergessen.

     

    • IP-Adresse ist Registriert
Seite 1 von 1 (5 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum