我做了一个DataReader的返回函数,但调用的时候却不能得到记录,请问是什么原因函数
public static OleDbDataReader DataReader_News(string sql)
{
DB.DBConn();
OleDbCommand cmd=new OleDbCommand(sql,DB.Conn);
                    OleDbDataReader dr;
dr=cmd.ExecuteReader();
if(dr.Read())
{
                
return dr;
}
}调用
     string sql="Select News_Id,News_Title from News where News_Id=1";
           OleDbDataReader dr=DataReader_DataBind.DataReader_News(sql);
 
if(dr.Read())
{
  TextBox1.Text=dr["News_Title"].ToString();
         }

解决方案 »

  1.   

    这么说吧,返回前已经Read过一次了,由于DataReader是只向前读取的,而你的记录只有1条所以已经读过去一条了
    可以这样
    public static OleDbDataReader DataReader_News(string sql)
    {
    DB.DBConn();
    OleDbCommand cmd=new OleDbCommand(sql,DB.Conn);
                        OleDbDataReader dr;
    dr=cmd.ExecuteReader();
                    
    return dr;

    }
      

  2.   

    函数
    public static OleDbDataReader DataReader_News(string sql)
    {
    DB.DBConn();
    OleDbCommand cmd=new OleDbCommand(sql,DB.Conn);
                        OleDbDataReader dr;
    dr=cmd.ExecuteReader();
    if(dr.Read())
    {
                    
    return dr;
    }
    }调用
         string sql="Select News_Id,News_Title from News where News_Id=1";
               OleDbDataReader dr=DataReader_DataBind.DataReader_News(sql);
     
      TextBox1.Text=dr["News_Title"].ToString();