DataView是否如果实现过滤列的功能?
我建了一张客户表,里面有一个列是用来存储该客户是否生效的。有效的客户才显示给客户端,因此这个字段必须作为SQL语句的一部分,但我又不想让DataGridView里能看到这个列,请问该怎么解决?

解决方案 »

  1.   

    你和数据库捆绑了以后,把不想显示的那列的数据在DATAGRIDVIEW里面的有个是否显示控件的值, 那个列不想显示,就让他的显示那个控件的的值=false就不会显示了,你就在DataGridView里面找下着个。绝对可以的。
      

  2.   

    当然可以了,你定义DataGridView的列的时候,根本就不定义你所说的那一列不就行了吗
      

  3.   

     public System.Data.DataTable DTUser = new DataTable("User"); //定义用户表DataTable #region private void GetList()获取数据列表
     /// <summary>
     /// 获取数据列表
     /// </summary>
     private void GetList()
     {     
        //获取数据,获取数据的方法就不说了,应该会写吧。
         this.DTUser = UserService.Instance.GetOrganizeList();
                
     }
     #endregion #region private void BindData()绑定数据
     /// <summary>
     /// 获取数据列表
     /// </summary>
     private void BindData()
     {
        //去掉自动新增行。
         this.gvUser.AutoGenerateColumns = false;
        //与DataGridView进行绑定。
         this.gvUser.DataSource = this.DTUser.DefaultView;
        //根据客户有效性来判断
         if ("是否有效条件")
        {
          //有效设置为可见
           this.gvUser.Columns["绑定字名"].Visible = false;
        }
        else
        {
          //无效设置为隐藏
           this.gvUser.Columns["绑定字名"].Visible = false;
        }
     }
     #endregion #region private void FormOnLoad() 加载窗体
     /// <summary>
     /// 加载窗体
     /// </summary>
     private void FormOnLoad()
     {
        // 设置鼠标繁忙状态
        this.Cursor = Cursors.WaitCursor;
        try
        {
            // 多语言国际化加载
            this.Localization(this);                
            //获取列表
            this.GetList();
            //绑定数据
            this.BindData();              
        }
        catch (Exception myException)
        {
            // 在本地记录异常
            BaseExceptionDao.Instance.WriteException(this.UserInfo, myException);
            // 显示异常页面
            FrmException myFrmException = new FrmException(this.UserInfo, myException);
            myFrmException.ShowDialog();
        }
        finally
        {
            // 设置鼠标默认状态
            this.Cursor = Cursors.Default;
        }
     }
     #endregion #region private void MainForm_Load(object sender, EventArgs e)加载
     /// <summary>
     /// 加载
     /// </summary>
     /// <param name="sender"></param>
     /// <param name="e"></param>
     private void MainForm_Load(object sender, EventArgs e)
     {
         //加载窗体
         this.FormOnLoad();
     }
     #endregion
      

  4.   

    [align=center]
     修正一下
     this.gvUser.Columns["绑定字名"].Visible = true ;
    [/align]
      

  5.   

    sql语句中把该字段放在where条件里,select后面写你需要的字段不就可以了吗?
    当然Columns["绑定字名"].Visible = true ;也很好用