/*按种类类别搜索*/
       public DataTable forKind(Kind kind)
       {
          
           string sql = "select * from kind where k_kind=@k_kind ";
           SqlParameter[] paras = new SqlParameter[]{
           new SqlParameter("@k_kind",kind.K_kind),
           };
           DataTable dt = SqlHelper.ExecuteReader(sql, paras);           if (dt!=null)
           {
               return dt;
           } 
            
            return null;
       }
/* 触发事件  */  protected void Button1_Click(object sender, EventArgs e)
    {        string kindname = TextBox1.Text;
        Kind kinds = new Kind();
        kinds.K_kind = kindname;
        DataTable k = new KindDAO().forKind(kinds);
        if (k != null)
        {
            GridView1.DataSource = new KindDAO().forKind(kinds);
            GridView1.DataBind();
        }
        else
            Response.Write("出错了");
            
        
    }当输入正确的值,可以按条件执行搜索 并且读取返回值在 GridView1 显示正确信息当输入错误的值,界面并没有显示“出错了“的提示字样   望各位多多帮忙 ——谢谢——        

解决方案 »

  1.   

    kind的返回值看看,是不是返回的不是空值
      

  2.   

    forKind方法里加断点。。输入一个错的看dt是不是null
      

  3.   

    两个 != null 都是多余的  -0-
      

  4.   

    如果不用 !=null k和dt都是属于datatable   不就是无法隐式转化bool进行判断了吗?输入错误值,点击Button界面都没反应 也没提示出错
      

  5.   

    錯誤是這裡吧~if (dt!=null),dt永遠不為null!應該用它的行數進行判斷~
      

  6.   

    if (k =! null && k.Tables[0].Rows.Count>0)
    {}
    else
    {}
      

  7.   


    public DataTable forKind(Kind kind)
      {
        
      string sql = "select * from kind where k_kind=@k_kind ";
      SqlParameter[] paras = new SqlParameter[]{
      new SqlParameter("@k_kind",kind.K_kind),
      };
      DataTable dt = SqlHelper.ExecuteReader(sql, paras);  if (dt!=null)
      {
      return dt;
      }  
        
      //return null;
       return new DataTable();
      }
      

  8.   

    那是当然  返回NULL和返回空是不同的 
    你输入错误的只是说取不到数据集 但并不是返回为null
    你在判断的时候可以用楼上的 
    DataTable dt = SqlHelper.ExecuteReader(sql, paras);  if (dt!=null)
      {
      return dt;
      }  
        
      //return null;
       return new DataTable();如果你想判断下有数据和没数据 你再根据
    k.Rows.count是否大于0来判断
      

  9.   

    当你输入错误信息时执行到forKind(Kind kind)
    方法里时返回了return null;