2016-05-17 4 views
0

Wenn ich meine Maus über DownloadFile halte, heißt es (nicht alle Pfade geben einen Wert zurück). Was muss ich tun, um das zu beheben?C# Nicht alle Pfade geben einen Wert zurück

public Stream DownloadFile() 
{ 
    using (SqlConnection con = new SqlConnection("GAPDB")) 
    { 
     using (SqlCommand cmd = new SqlCommand("SELECT FileUpload FROM [FirmWareVersion]", con)) 
     { 
      con.Open(); 

      SqlDataReader reader = cmd.ExecuteReader(); 
      if (reader.Read()) 
      { 
       byte[] data = (byte[])reader["FileUpload"]; 
       System.IO.MemoryStream ms = new System.IO.MemoryStream(data); 
      } 
     } 
    } 
} 
+0

add else condition mit return something oder 'null' –

+2

Der Compilerfehler ist ziemlich klar: Nicht alle Pfade geben einen Wert zurück, kein _single_ Pfad gibt einen Wert zurück! Fügen Sie also in Ihrem if-Block am Ende Ihrer Methode ein 'return ms;' und wahrscheinlich ein 'return null;' hinzu. –

+0

Sie definieren eine Funktion, die einen Stream zurückgibt. Aber in der Funktion gibst du nichts zurück –

Antwort

3

Sie benötigen einen Stream zurückzukehren als Methode eine Stream als Rückgabetyp definiert:

public Stream DownloadFile() 
{ 
    using (SqlConnection con = new SqlConnection("GAPDB")) 
    { 
     using (SqlCommand cmd = new SqlCommand("SELECT FileUpload FROM [FirmWareVersion]", con)) 
     { 
      con.Open(); 

      SqlDataReader reader = cmd.ExecuteReader(); 
      if (reader.Read()) 
      { 
       byte[] data = (byte[])reader["FileUpload"]; 
       System.IO.MemoryStream ms = new System.IO.MemoryStream(data); 
       return ms; 
      } 
     } 
    } 

    return null; 
} 

Alternativ können Sie Ihre Methode als void markieren, wenn Sie es nicht zurückgeben müssen.

+0

Danke das funktioniert !!! –

Verwandte Themen