2011-01-07 7 views
0
string casetype6(HiddenField HiddenField1,DropDownList DropDownList3) 
     { 
      String casetype1=""; 

      try 
      { 
       OdbcConnection casetype = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=10.155.160.130;Database=testcase;User=root;Password=;Option=3;"); 
       casetype.Open(); 

       //************to get case type  
       string casetypequery = "select casename from casetype where skey=?"; 

       //************to get case type 
       OdbcCommand casetypecmd = new OdbcCommand(casetypequery, casetype); 
       String casetypefromdropdown = DropDownList3.SelectedItem.ToString(); 
       casetypecmd.Parameters.AddWithValue("?", casetypefromdropdown); 
       using (OdbcDataReader casetypeMyReader = casetypecmd.ExecuteReader()) 
       { 
        while (casetypeMyReader.Read()) 
        { 
         String casename = casetypeMyReader["casename"].ToString(); 
         HiddenField1.Value = casename; 
         casetype1=HiddenField1.Value.ToString(); 
return casetype1; 
        } 
       } 

      } 
      catch(Exception ep) 
      { } 
     } 

I casetype1 außerhalb dieser Methode verwendet werden soll. Wie kann ich es tun? Wenn ich Rückkehr casetype1 sagen dann Fehler kommt wie:Problem mit return() in asp.net C#

'Data.casetype6(System.Web.UI.WebControls.HiddenField, System.Web.UI.WebControls.DropDownList)': not all code paths return a value 
+0

möglich Duplikat von [Rückgabe eines Wertes in C# -Funktion] (http://StackOverflow.com/Questions/4613984/Return-Avalue-in-C-Function) –

Antwort

1

Put return casetype1; nach Zahnspange Fangabschnitt endet.

3

Ihre Methode nichts zurückliefert, wenn irgendwie nicht wahr das while loop eingeben (falls Ihr casetypeMyReader leer ist) oder eine Ausnahme ausgelöst wird (Verbindung fehlgeschlagen zur Datenbank). Der folgende Code wurde geändert. Guck mal.

string casetype6(HiddenField HiddenField1,DropDownList DropDownList3) 
{ 
    String casetype1=""; 

    try 
    { 
     OdbcConnection casetype = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=10.155.160.130;Database=testcase;User=root;Password=;Option=3;"); 
     casetype.Open(); 

     //************to get case type  
     string casetypequery = "select casename from casetype where skey=?"; 

     //************to get case type 
     OdbcCommand casetypecmd = new OdbcCommand(casetypequery, casetype); 
     String casetypefromdropdown = DropDownList3.SelectedItem.ToString(); 
     casetypecmd.Parameters.AddWithValue("?", casetypefromdropdown); 
     using (OdbcDataReader casetypeMyReader = casetypecmd.ExecuteReader()) 
     { 
      while (casetypeMyReader.Read()) 
      { 
       String casename = casetypeMyReader["casename"].ToString(); 
       HiddenField1.Value = casename; 
       casetype1 = HiddenField1.Value.ToString(); 
       break; // instead of returning from here, break the loop 
      } 
     } 

    } 
    catch(Exception ep) 
    { } 

    return casetype1; // and return here. 
} 
+0

wird gesagt jaiiiii –

1

Sie benötigen string.Empty etwas wie Rendite zu erzielen, oder vorzugsweise etwas tun mit Ausnahme in Ihrem catch Block.

Es gibt immer eine Debatte darüber, wo die return, sei es am Ende der Methode, oder an dem Punkt, wo Sie zurückkehren möchten. Ich mag persönlich zurück, wo der Wert zurückgegeben werden, und dann mit den anderen Problemen beschäftigen, wo sie müssen mit behandelt werden - in diesem Fall des catch-Block.