用一个DATALIST绑定了一个数据,然后写了一个类,想查询所需要的记录,但是查询的结果只显示DATALIST的HEAD,不显示绑定的数据,请高手指教,谢谢
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AFATConnectionString"].ConnectionString);
    private SqlCommand comm;
    private SqlDataReader sqldr;       public bool select(string a)
    {
        comm = new SqlCommand("select * from bottle where tagID='"+a+"'", conn);
        sqldr = null;
        conn.Open();
        sqldr = comm.ExecuteReader();        
        if (sqldr.Read())
        {
            DataList1.DataSource = sqldr;
            DataList1.DataKeyField = "tagID";
            DataList1.DataBind();
            sqldr.Close();
            return true;
        }
        else { return false; }
               
    }
       protected void Button1_Click(object sender, EventArgs e)
    {        if (select(TextBox1.Text.Trim()) == true)
        {
            DataList1.Visible = true;
        }
        else
        {
            Response.Write("<script language=javascript>alert('没有您要找的记录')</script>");
        }
        
    }
   
}

解决方案 »

  1.   

    select * from bottle where tagID='xx'
    你先到数据库中查下,是否有记录
      

  2.   

    问题可能出在 sqldr = comm.ExecuteReader();上,你最好把执行的结果集放到dataset中,不过我不肯定;还有一个可能出错的原因是你的sql语句中最好不要用*,这样也会影响执行效率,最好把具体的字段都写明白,我认为就是这两个原因,你可以按照我说的,去尝试的改一下。最好养成一个好的编写代码的习惯。仅供参考。へへ
      

  3.   

    ddlType.DataSource=dsType.Tables[0];
    ddlType.DataTextField="RetiretypeName";
    ddlType.DataValueField="RetiretypeNO";
    ddlType.DataBind();
    其中dsType是dataset,你最好也把它的DataValueField字段也绑定,懂得知识的活用,理解了原理,自然能够以不变应万变。
      

  4.   

    public bool select(string a)
        {
            comm = new SqlCommand("select * from bottle where tagID='"+a+"'", conn);
            sqldr = null;
            conn.Open();
            sqldr = comm.ExecuteReader();                DataList1.DataSource = sqldr;
            DataList1.DataKeyField = "tagID";
            DataList1.DataBind();
            if (DataList1.Items.Count > 0)
                return true;
            
            return false
                   
        }
      

  5.   

    DataReader做数据源不用再 dr.Read()
      

  6.   

    if (sqldr.Read())
            {
                DataList1.DataSource = sqldr;
                DataList1.DataKeyField = "tagID";
                DataList1.DataBind();
                sqldr.Close();
                return true;
            }
            else { return false; }
    >>>>
                DataList1.DataSource = sqldr;
                DataList1.DataKeyField = "tagID";
                DataList1.DataBind();
                sqldr.Close();
               
                return sqldr.HasRows;
      

  7.   

    public bool select(string a)
        {
            comm = new SqlCommand("select * from bottle where tagID='"+a+"'", conn);
            sqldr = null;
            conn.Open();
            sqldr = comm.ExecuteReader();        
            if (sqldr.Read())
            {
                DataList1.DataSource = sqldr;
                DataList1.DataKeyField = "tagID";
                DataList1.DataBind();
                sqldr.Close();
                return true;
            }
            else { return false; }
                   
        }
      

  8.   

    public bool select(string a)
        {
            comm = new SqlCommand("select * from bottle where tagID='"+a+"'", conn);
            sqldr = null;
            conn.Open();
            sqldr = comm.ExecuteReader();        
            if (sqldr.Read())
            {
                DataList1.DataSource = sqldr;
                DataList1.DataKeyField = "tagID";
                DataList1.DataBind();
                sqldr.Close();
                return true;
            }
            else { return false; }
                   
        }
      

  9.   

    晕!你好好的再看看自己的代号 
    sqldr = comm.ExecuteReader();
    if (sqldr.Read())
            {
                DataList1.DataSource = sqldr;
                DataList1.DataKeyField = "tagID";
                DataList1.DataBind();
                sqldr.Close();
                return true;
            }