ArrayList arr=new ArrayList();
System.Data.SqlClient.SqlDataReader dr = con.GetDataReader("select pid from lsqkps where kid="+Page.Request.QueryString["ID"]);
if(dr!=null)
{
if(dr.HasRows)
{
arr.Add("update DcNotice set zt=15 from DcNotice,lsqk where DcNotice.id=lsqk.pid and lsqk.id="+dr[0].ToString());
arr.Add("update electask set zt=15 from electask e,dcnotice d,lsqk l where e.id=d.pid and d.id=l.pid and l.id="+dr[0].ToString());
}
}
dr.Close();

解决方案 »

  1.   

    if(dr.HasRows)
    {
       dr.Read();
       ///然后....
    }
      

  2.   

    是的,要先调用一下Read()方法,才开始读数据
      

  3.   

    if(dr!=null)
    {
    while(dr.Read())
    {
    arr.Add("update DcNotice set zt=15 from DcNotice,lsqk where DcNotice.id=lsqk.pid and lsqk.id="+dr[0].ToString());
    arr.Add("update electask set zt=15 from electask e,dcnotice d,lsqk l where e.id=d.pid and d.id=l.pid and l.id="+dr[0].ToString());
    }
    }
    dr.Close();
      

  4.   

    SqlDataReader.Read 方法
    使SqlDataReader 前进到下一条记录
    SqlDataReader的默认位置在第一条记录前面。因此,必须调用 Read来开始访问任何数据
      

  5.   

    if(dr.Read())
    {
       ///然后....
    }
    就可以了,有记录的话Read())就会返回true
      

  6.   

    Click the link to solve your problem.Good luck!