我检测到无法访问的代码时收到错误。 [英] I am getting error as Unreachable code detected.

查看:83
本文介绍了我检测到无法访问的代码时收到错误。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

早上好

我的代码是

 私人  bool  UserExit()
{
if (con.State!= ConnectionState.Open)
con.Open();
字符串 str = 选择*来自invoiceform LearnerID' + txtLearnerId.Text + ';
SqlCommand cmd = new SqlCommand(str,con);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
return ;
}
其他
{
返回 ;
}
reader.Close(); // 这里我收到错误,因为检测到无法访问的代码
con.Close();
}

解决方案

因为你有下面的代码块,当你有行或时,它将存在方法不是
lang =cs> 如果(reader.HasRows)
{
返回 true ;
}
其他
{
返回 ;
}



所以代码不会达到 reader.Close();



作为解决方案你可以使用try catch并最终阻止

 SqlDataReader reader = command.ExecuteReader(); 
尝试
{
....
}
最后
{
if (reader!= null
reader.Close();
}



或我建议你使用使用积木

 使用(SqlConnection connection = ...)
{
connection.Open();
...
使用(SqlCommand command = ...)
{
使用(SqlDataReader reader = command.ExecuteReader())
{
... 你的东西......
} // 此处已关闭/处理读者
} // 命令已关闭/处置
}


Good Morning
My code is

private bool UserExit()
   {
       if (con.State != ConnectionState.Open)
           con.Open();
       String str = "Select * From invoiceform Where LearnerID'"+txtLearnerId.Text+"'";
       SqlCommand cmd = new SqlCommand(str, con);
        SqlDataReader reader=cmd.ExecuteReader();
       if (reader.HasRows)
       {
           return true;
       }
       else
       {
           return false;
       }
       reader.Close();//Here i am getting error as unreachable code detected
       con.Close();
   }

解决方案

since you have below code block, it will exist the method when you have rows or not

if (reader.HasRows)
{
return true;
}
else
{
return false;
}


so the code will not reach reader.Close(); line

as a solution you can use try catch and finally block

SqlDataReader reader = command.ExecuteReader();
try
{
    ....
}
finally
{
  if (reader != null)
      reader.Close();
}


or I would recommend you to use "using blocks"

using(SqlConnection connection = ...)
{
    connection.Open();
    ...
    using(SqlCommand command = ...)
    {
        using(SqlDataReader reader = command.ExecuteReader())
        {
            ... do your stuff ...
        } // reader is closed/disposed here
    } // command is closed/disposed here
}


这篇关于我检测到无法访问的代码时收到错误。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆