使用一个DataView,屏蔽表中不想显示的列。
将DataGrid绑定到DataView.

解决方案 »

  1.   

    如果是WinForm,参考http://expert.csdn.net/Expert/topic/1185/1185978.xml?temp=.4530298
      

  2.   

    TO:hanxian(寒星(*)终于有了一颗星
       我是这样做的,可是它只能使在设计时指定的列(如选择、编辑)不可见,在运行时创建的列则没有效果,且使用该语句后所有的列都不会显示出来。
      

  3.   

    private void Button9_Click(object sender, System.EventArgs e)
    {
        //数据库连接类
        T_DataService dbData = new T_DataService();
        //连接字符串
        string strCon = dbData.ConnectString;
        string strSql = "";
        string strErr = "";
        DataSet ds = new DataSet();
        try
         {
    DataView dv = new DataView();
    strSql = "Select KS_KY_LK  lk,DELETEFLAG From SA_KS_KY ds = dbData.QueryToDataSet(strCon,strSql);
    dv = ds.Tables["Table"].DefaultView;
    DGTest.DataSource = dv;
    DGTest.DataBind();
    DGTest.Columns[5].Visible = false;//为KS_KY_LK列
         }
        catch(Exception Err)
        {
    strErr = Err.Message.ToString();
        }
    }
    运行结果是:整个DGTest不显示数据,如果将5换为在设计时指定的列(如编辑、删除)则可以实现隐藏列的显示
      为何不能使运行时创建的列隐藏?
      

  4.   

    dataset.Tables[1].Columns[5].ColumnMapping = MappingType.Hidden; 
      

  5.   

    to:yarshray(saga jion) 
     不行啊
    我是这样做的:private void Button9_Click(object sender, System.EventArgs e)
    {
         T_DataService dbData = new T_DataService();
         string strCon = dbData.ConnectString; //连接字符串
         string strSql = "";
         string strErr = "";
         DataSet ds = new DataSet();
         try
        {
    strSql = "Select KS_KY_LK  lk,DELETEFLAG From SA_KS_KY"; ds = dbData.QueryToDataSet(strCon,strSql)
             ds.Tables["Table"].Columns["lk"].ColumnMapping =   
                            MappingType.Hidden;//Table为表名 DGTest.DataSource = ds;
    DGTest.DataBind();
        }
       catch(Exception Err)
    {
    strErr = Err.Message.ToString();
    }
    }
    }