检测到无法访问的代码??是什么原因啊 ??

xiaosongaspnet 2004-07-15 11:24:45
public string checkadmin(string username,string password)
{
string sql;
SqlDataReader myread;
sql="select * from usertable where username='"+username+"' and pass='"+password+"' and admin=1 ";
SqlConnection myconns=new SqlConnection(this.myConnectionString);
SqlCommand mycomm =new SqlCommand(sql,myconns);
myconns.Open();
myread=mycomm.ExecuteReader(CommandBehavior.CloseConnection);
if (myread.Read())
{
return myread["username"].ToString();
}
else
{
return "";
}
myread.Close();<-- 检测到无法访问的代码


}


可以编译,运行也不出错,就是总出这样信息,烦。各位请帮帮忙。
...全文
769 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2004-07-15
  • 打赏
  • 举报
回复
因为你的代码在执行了 if或者else之后就return了,后面的代码当然不会被执行了。
把最后的if ...else 语句改成这样:

string retStr="";
if (myread.Read())
{
retStr=myread["username"].ToString();
}
myread.Close();
return retStr;
xiaosongaspnet 2004-07-15
  • 打赏
  • 举报
回复
谢谢
brightheroes 2004-07-15
  • 打赏
  • 举报
回复
修改如下:
string result= "";
if (myread.Read())
{
result = myread["username"].ToString();
}
return result;
真相重于对错 2004-07-15
  • 打赏
  • 举报
回复
if (myread.Read())
{
return myread["username"].ToString();
}
else
{
return "";
}
myread.Close();<-- 检测到无法访问的代码
if else 程序块中都返回了,myread.close根本不会执行
应该用
try{}
catch()
finally
{
myread.Close();
}
yy_will 2004-07-15
  • 打赏
  • 举报
回复
前面都已经Return了,当然访问不到啦!
brightheroes 2004-07-15
  • 打赏
  • 举报
回复
if (myread.Read())
{
return myread["username"].ToString();
}
else
{
return "";
}
不管怎么样,都return了,方法都结束了
你的下一个语句当然是无法访问了

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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