我有23列,其中有些列时空白的,有些列时有数据的!我想提取有数据的列,请问怎么判断哪些列有数据!

解决方案 »

  1.   

    datatable有select,里面可以做简单的条件筛选
    或者遍历grid
      

  2.   


    如果可以用select那就可以直接把要显示列显示出来就额可以了
      

  3.   

    DataTable dt = new DataTable();
                                DataRow dr = new DataRow();
                                int al = DGV.Rows.Count;
                                int forjudge = 0;
                                for (int j = 0; j < al; j++)
                                {
                                    forjudge = 0;
                                    for(int ii=0; ii<DGV.Columns.Count;ii++)
                                    {
                                        if (DGV.Rows[j].Cells[ii].ToString().Length > 0)
                                        {
                                            if (ii == DGV.Columns.Count)
                                            {
                                                forjudge = 1;
                                            }
                                        }
                                    }                                if (forjudge == 1)
                                    {
                                        DataRow datarow = dt.NewRow();
                                        for (int i = 0; i < DGV.Columns.Count; i++)
                                        {
                                            datarow[i] = DS.Tables["temp"].Rows[j].ItemArray[i];
                                        }
                                        dt.Rows.Add(datarow);
                                    }
    ;
                                }
                                DGV.DataSource = dt;
    自己再变化下试试看,应该可以
      

  4.   

    DataRow dr = new DataRow();
    额,多了句没用的,粗心,呵呵
      

  5.   


    自己写了个代码实验了下: 
      private void btn11_Click(object sender, EventArgs e)
            {
                // 提取有效列(有一单元格有数据就有效)
                for (int i = 1; i < dgvIODeviceMessage.ColumnCount; i++)
                {
                    for (int j = 0; j < 6; j++)
                    {
                        if (dgvIODeviceMessage[i, j].Value != null)
                        {
                            dgvIODeviceMessage.Columns[i].Name = i.ToString();
                            MessageBox.Show(dgvIODeviceMessage.Columns[i].Name.ToString());
                            break;
                        }
                    }
                }
            }我将有数据的列的name改为和列的索引值一样,这样就可以通过列的索引找到有数据的列了!!探讨下!!
      

  6.   


    自己写了个代码实验了下: 
      private void btn11_Click(object sender, EventArgs e)
            {
                // 提取有效列(有一单元格有数据就有效)
                for (int i = 1; i < dgvIODeviceMessage.ColumnCount; i++)
                {
                    for (int j = 0; j < 6; j++)
                    {
                        if (dgvIODeviceMessage[i, j].Value != null)
                        {
                            dgvIODeviceMessage.Columns[i].Name = i.ToString();
                            MessageBox.Show(dgvIODeviceMessage.Columns[i].Name.ToString());
                            break;
                        }
                    }
                }
            }我将有数据的列的name改为和列的索引值一样,这样就可以通过列的索引找到有数据的列了!!探讨下!!