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那么错误来自:
'Data.casetype6(System.Web.UI.WebControls.HiddenField, System.Web.UI.WebControls.DropDownList)': not all code paths return a value
答案 0 :(得分: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.
}
答案 1 :(得分:1)
您需要在string.Empty
区块中添加类似返回catch
或最好执行某些操作的内容。
总是存在关于放置return
的位置的争论,无论是在方法的最后还是在你想要返回的位置。我个人喜欢返回值可以返回的位置,然后处理需要处理的其他问题 - 在这个例子中,catch块。
答案 2 :(得分:1)
在结束捕获部分的大括号之后放置return casetype1;
。