菜鸟求教,并非所有的代码路径都有返回值

w_xxxbbb 2014-09-10 04:36:54
        public string GetNextStatus() {
string StrSQL;
string strTemp;
SqlConnection conn = new SqlConnection(Getconn());
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
StrSQL = "SELECT NEXTSTATUS FROM TB_LWS WHER WHERE ";
StrSQL = StrSQL + "NEXTSTATUS IN ('030','040','050') and LWSEvent = @LWSEvent";
cmd.CommandText = StrSQL;
cmd.Parameters.Add("@LWSEvent", SqlDbType.Char, 3).Value = LWSEvent;
SqlDataReader dr = cmd.ExecuteReader();
try
{
dr.Read();
if (dr.HasRows == false)
{
dr.Close();
return "030".ToString();
}
strTemp = dr["NEXTSTATUS"].ToString();
if (strTemp.Equals("030".ToString()))
{
dr.Close();
return "040".ToString();
}
if (strTemp.Equals((string)"040"))
{
dr.Close();
return "050".ToString();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
finally {
//dr.Close();
conn.Close();
}
}

总是提示“并非所有的代码路径都有返回值”
看了半天了,没找出原因来。
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狐 2014-09-10
  • 打赏
  • 举报
回复
晕。。。没进if,不就没有返回值了???
w_xxxbbb 2014-09-10
  • 打赏
  • 举报
回复
引用 3 楼 wanghui0380 的回复:
标准写法 string result=string.empty; if() { result="xx" } return result 无论你多少个if else 无论你内部怎么处理,只在一个地方return他,就不会出现这错误了
多谢!
漫天雪飞 2014-09-10
  • 打赏
  • 举报
回复

try
{
}
catch
{
}
return "";
w_xxxbbb 2014-09-10
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
你只在if里return 要是没进if呢
多谢。我只是考虑了逻辑上肯定会进入if(){} 刚学C#,多谢指教。
於黾 2014-09-10
  • 打赏
  • 举报
回复
还有, "030"本身就是字符串 就别ToString()了 看起来怪费劲的
wanghui0380 2014-09-10
  • 打赏
  • 举报
回复
标准写法 string result=string.empty; if() { result="xx" } return result 无论你多少个if else 无论你内部怎么处理,只在一个地方return他,就不会出现这错误了
於黾 2014-09-10
  • 打赏
  • 举报
回复
可以在代码的最后,加个 return string.Empty; 然后调用的地方,判断一下返回的字符串长度如果是0,说明没有错误.
於黾 2014-09-10
  • 打赏
  • 举报
回复
你只在if里return 要是没进if呢

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧