我从其他地方导入Excel,使其显示在dataGridView1中,但是我有一部分是不需要的,所以我想在内存中删除它们,使dataGridView显示数据时就没有这些数据,(注:并不是删除Excel内容)

解决方案 »

  1.   

    既然能显示在Gridview中,直接在Gridview的数据源中删除就行了啊
    如果是datatable的话,
    找到不需要的记录
    DataTable.Rows.Remove();移除就行了。
      

  2.   

    我删除的方式是 dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
      

  3.   

    显示在datagridview中的方式是:
      private System.Data.DataTable GetExcelToDataTable(string filePath)
            {            //连接串
                DataSet ds = new DataSet();
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection conn = new OleDbConnection(strConn);            conn.Open();
                //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等  
                System.Data.DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });            //包含excel中表名的字符串数组
                string[] strTableNames = new string[dtSheetName.Rows.Count];
                for (int k = 0; k < dtSheetName.Rows.Count; k++)
                {
                    strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
                }            OleDbDataAdapter myCommand = null;
                System.Data.DataTable dt = new System.Data.DataTable();            //从指定的表明查询数据,可先把所有表明列出来供用户选择
                string strExcel = "select * from [" + strTableNames[0] + "]";
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                dt = new System.Data.DataTable();
                myCommand.Fill(dt);            conn.Close();
                return dt;        }
            private void button1_Click(object sender, EventArgs e)
            {
                DialogResult dres = openFileDialog1.ShowDialog();
                if (DialogResult.OK.Equals(dres))
                {                dataGridView1.DataSource  = GetExcelToDataTable(openFileDialog1.FileName);
                    
                    //EcxelToDataGridView(openFileDialog1.FileName, dataGridView1)
                }
            }
      

  4.   

    for(int i=dataGridView1.Rows.Count-1; i>=0; i--)
       dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
      

  5.   

    for (int i = dataGridView1.RowCount - 1; i >= 0; i--)
    dataGridView1.Rows.RemoveAt(i); 从大索引号至小索引号删除,删除后会重排索引号