如题:
            string sql2 = "select hwmc,danwei,jianshu,ztiji,zzl,cyf,bxe,huikou,zyf from hwxx where hw_jydbh='KCKY10020801003'";
            SqlCommand cmd2 = new SqlCommand(sql2, conn);            SqlDataReader rdr2 = cmd2.ExecuteReader();
            GridView1.DataSource = rdr2;
            GridView1.DataBind();
我想把从数据库中检索的ztiji,zzl两字段 中 
当值为0的时候 不显示出来??

解决方案 »

  1.   

    在绑定数据是获取值,为0设置列隐藏
    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header) 
            { 
                e.Row.Cells[1].Visible = false; 
            } 
        } 
      

  2.   

    不太明白楼主的意思
    这样呢?
    select hwmc,danwei,jianshu,ztiji,zzl,cyf,bxe,huikou,zyf from hwxx where hw_jydbh='KCKY10020801003' and ztiji!=0 and zzl!=0
    是不是楼主要的结果?
    我的理解是楼主想对以上两个条件再做一次过滤
      

  3.   


    是要做两次过虑   但是如果你这样的话 就什么数据都查不出来了
    我是要在查询后的结果中  只要是ztiji 或者zzl 中的一个值为0的话 就隐藏不显示出来
      

  4.   

    很简单,只要在声明时直截了当地说明你的“.....时不显示”这个条件:<asp:Label ID="myLabel" runat="server" Text='<%# Eval("zzl") %>' Visible='<%# (int)Eval("zzl")!=0 %>' />
      

  5.   

    在Visible中也可以写复杂的表达式,甚至可以是函数方法,例如:<asp:Label ID="myLabel" runat="server" Text='<%# Eval("zzl") %>' 
       Visible='<%# MyCheck((int)Eval("zzl"),(int)Eval("ztiji")) %>' />
    你可以定义方法protected bool MyCheck(int zzl,int ztiji){...}如此类推。你可以绑定任意多的字段,写任意复杂的判断Visible值的函数,道理都是很容易懂的。
      

  6.   

    DataView专门过滤数据的,而且不影响真实的数据(只是隐藏)            DataTable dt = new DataTable();
                dt.Columns.Add("name");
                dt.Rows.Add("cc");
                dt.Rows.Add("dd");
                dt.Rows.Add("");            DataView dv = new DataView(dt);
                dv.RowFilter = "name<>'cc'";
                dataGridView1.DataSource = dv;
      

  7.   

    显然,绑定表达式也可以写:<asp:Label ID="myLabel" runat="server" Text='<%# Eval("zzl") %>' 
       Visible='<%# (int)Eval("zzl")!=0 && (int)Eval("ztiji")!=0 %>' />
      

  8.   


    这个啊,还是得从数据库查询中就过滤一下
    select hwmc,danwei,jianshu,ztiji,zzl,cyf,bxe,huikou,zyf from hwxx where hw_jydbh='KCKY10020801003' and (ztiji!=0 or zzl!=0)
    下面的这个语句过滤的更彻底,如果有任何一个为0就
      

  9.   


    select hwmc,danwei,jianshu
        , ztiji = NULLIF(ztiji, 0)
        , zzl = NULLIF(zzl, 0)
        , cyf,bxe,huikou,zyf
    from hwxx
    where hw_jydbh='KCKY10020801003'
      

  10.   


    <asp:Label ID="myLabel" runat="server" Text='<%# (int)Eval("zzl")==0?string.Empty: Eval("ztiji")%>' />
      

  11.   

    直接在SQL语句里面写就可以了啊。
      

  12.   

    1.如果直接绑定的话而且还不想在GridView1中显示的话就直接在SQL中实现;
    2.如果是在后期有处理的话建议用DataView ,过滤比较方便.
      

  13.   

     select hwmc,danwei,jianshu,
    case when ztiji=0 then '' else ztiji end as ztiji,
    case when zzl=0 then '' else zzl end as zzl,
    cyf,bxe,huikou,zyf from hwxx where hw_jydbh='KCKY10020801003'
      

  14.   

    这个你在前台后台处理都可以啊后台在SQL文中滤一次 或者在BLL中过滤前台页面代码中重新绑定数据也可以