2011-01-07 77 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) 
      { } 
     } 

我想用casetype1这种方法之外。我该怎么做? 如果我说回casetype1然后错误当属:使用的问题()返回在asp.net C#

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

可能重复的[在c#函数中返回值](http://stackoverflow.com/questions/4613984/return-a-value-in-c-function) – 2011-01-07 09:24:21

回答

1

return casetype1;放在收尾部分的大括号后面。

3

你的方法不返回任何东西,如果你不知何故没有进入while loop(如果你casetypeMyReader是空的)或某些异常被抛出(连接失败到数据库)。以下是更改代码。看一看。

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

会说jaiiiii – 2011-01-07 06:30:08

1

你需要添加类似回报string.Empty,或者最好做的例外在catch块的东西

对于将return放在哪里,无论是在方法的末尾,还是在想要返回的地方,都存在争议。我个人喜欢回到可以返回价值的地方,然后处理需要处理的其他问题 - 在这种情况下,需要处理catch块。