try{}catch{}问题+objrea.read()问题?????十万火急在线等。

fanglibang 2005-10-20 07:03:44

从DataReader中读出数据,但是DataReader返回了0条数据,从而导至 ObjRead.Read()没有可读数据,然而就会产生错误。
我在try{}catch{}的 catch{}中加入了Response=HttpContext.Current.Response;
Response.Redirect("../Error.aspx");
这条语句。为什么执ObjRead.Read()这条语句没有跳到catch中去执行,却执直接产生错误提示:
ObjRead.Read();没有可读数据。。
大家能我帮解释一下吗?
讲讲解决的代码!!!!谢谢


SqlString="select popedom from ClassEnter where "
+"username=@username and password=@password";
Param表示是SQL参数



代码如下::::::
//返回用户名权限
public bool UrPwPo(string SqlString,SqlParameter[] Param)
{
//pop用来存放权限的值

bool pop;
SqlConnection ObjCon=new SqlConnection(Class1.ConStr);
Class1.ConState(ObjCon);
SqlCommand ObjCom=new SqlCommand();
Class1.PrepareCommand(ObjCon,ObjCom,SqlString,Param);
try
{
SqlDataReader ObjRead=ObjCom.ExecuteReader();
ObjRead.Read();
pop=(bool)ObjRead.GetValue(0);
ObjCon.Close();
return pop;

}
catch
{
ObjCon.Close();
Response=HttpContext.Current.Response;
Response.Redirect("../Error.aspx");
}




}
//初使Coomand对像
public static void PrepareCommand(SqlConnection objcon,SqlCommand objcom,string sqlstring,SqlParameter[] param)
{

objcom.Connection=objcon;
Class1.ConState(objcon);
objcom.CommandText=sqlstring;
if(param!=null)
{
foreach(SqlParameter par in param)
{
objcom.Parameters.Add(par);
}

}

}
...全文
89 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pmmx 2005-10-21
  • 打赏
  • 举报
回复
if(dr.read())
{

}
试试
fanglibang 2005-10-21
  • 打赏
  • 举报
回复
我按这个改一样报错..
fanglibang 2005-10-21
  • 打赏
  • 举报
回复
下面的改法,,我的功能就变了.
try
{ObjCon.Open()
SqlDataReader ObjRead=ObjCom.ExecuteReader();
if(ObjRead.Read())//这里先判断就不会抱错了
{
pop=(bool)ObjRead.GetValue(0);
return pop;
}

}
catch
{

Response=HttpContext.Current.Response;
Response.Redirect("../Error.aspx");
}
Finally
{
ObjCon.Close();
}
fanglibang 2005-10-21
  • 打赏
  • 举报
回复
你们说说怎么改啊......Response是我在类中定义的一个全局变量.

火雷 2005-10-21
  • 打赏
  • 举报
回复
catch(要捕捉的错误) 你没写。
zhhxx 2005-10-21
  • 打赏
  • 举报
回复
如果用
if(dr.read())
{
}
的话可能少取出一条记录,应该是
if(dr!=null)
{
}
fanglibang 2005-10-21
  • 打赏
  • 举报
回复
if(dr.read())
{

}
试了
lilian_bu 2005-10-20
  • 打赏
  • 举报
回复
Response=HttpContext.Current.Response;
这句不报错吗?Response是只读的怎么能赋值
wd_terry 2005-10-20
  • 打赏
  • 举报
回复
try
{ObjCon.Open()
SqlDataReader ObjRead=ObjCom.ExecuteReader();
if(ObjRead.Read())//这里先判断就不会抱错了
{
pop=(bool)ObjRead.GetValue(0);
return pop;
}

}
catch
{

Response=HttpContext.Current.Response;
Response.Redirect("../Error.aspx");
}
Finally
{
ObjCon.Close();
}
moneybag 2005-10-20
  • 打赏
  • 举报
回复
操,十万火急在线等,给0分.是人都不理你啦
fanglibang 2005-10-20
  • 打赏
  • 举报
回复
怎么没有人回啊!!是不是沉入深海了啊。。!!!!!!!!!11

62,047

社区成员

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

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

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

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