确信有查询结果吗?
if(dr.Read())
{
   varTitle.Text=dr.GetValue(1).ToString();
}

解决方案 »

  1.   

    while(dr.Read())
    {
       varTitle.Text=dr.GetValue(1).ToString();
    }
      

  2.   

    maybe the database have no data
      

  3.   

    是不是你的Request["ID"]没有传递好?讲你的commandtext输出来看看,也可以放在sql server里面调试看看
      

  4.   

    在select处设个断点看看然后提取sql语句进入数据库校验,
    看看是不是这得错!
    或则看看是不是参数提取不对/
      

  5.   

    第一,你必须要看是不是有数据返回.
    第二,你的GetValues(1)中的l是什么东东?
      

  6.   

    你的问题在于没有搞清sqlDataReader的执行机制,楼上的几位朋友也有这样的问题:如果想采用sqlDataReader读取数据,必须先执行Read(),所以你在
    SqlDataReader dr=sqlCommand1.ExecuteReader();
    之后必须加上一句
    dr.read() //如果下一位置没有记录,返回false
    然后再执行
    varTitle.Text=dr.GetValue(1).ToString();
    肯定不会再出现错误了。
    有时就是用这一语句判断数据库中是否有记录,例如
    sqlConnection1.Open();
    sqlCommand1.CommandText="select * from Users where UserName='" +UserName+"'";
    SqlDataReader dr=sqlCommand1.ExecuteReader();
    if not dr.read then
       response.write ("用户不存在")
    end if
    ......大概就是这个意思吧
      

  7.   

    SqlConnection1.Open();string strsql="select * from message where title='" +Request.QueryString["ID"]+"'";SqlCommand cm=new SqlCommand(strsql,SqlConnection1);SqlDataReader dr=cm.ExecuteReader();if (dr.Read){varTitle.Text=dr["字段"].ToString();}please try;