dataGridView如何删除指定的行(从excel中导入的数据) 我从其他地方导入Excel,使其显示在dataGridView1中,但是我有一部分是不需要的,所以我想在内存中删除它们,使dataGridView显示数据时就没有这些数据,(注:并不是删除Excel内容) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然能显示在Gridview中,直接在Gridview的数据源中删除就行了啊如果是datatable的话,找到不需要的记录DataTable.Rows.Remove();移除就行了。 我删除的方式是 dataGridView1.Rows.Remove(dataGridView1.Rows[i]); 显示在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) } } for(int i=dataGridView1.Rows.Count-1; i>=0; i--) dataGridView1.Rows.Remove(dataGridView1.Rows[i]); for (int i = dataGridView1.RowCount - 1; i >= 0; i--)dataGridView1.Rows.RemoveAt(i); 从大索引号至小索引号删除,删除后会重排索引号 多线程错误 从xls文件中拷贝数据到二维数组非常慢 编译错误 !! comboBox添加值问题(从另一个comboBox中添加) 谁给个VB转换成C#的网站 同Solution里面的两个WinForm Project,怎样通过delegate互相通知更新? 怎样获取键盘输入? 最简单的问题 最多的分数(救急) 求真正的大神 帮忙解决Session问题 不知道这样子错在哪里,请看看。 label属性介绍 这个过程怎么调用,参数怎么传???
如果是datatable的话,
找到不需要的记录
DataTable.Rows.Remove();移除就行了。
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)
}
}
dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
dataGridView1.Rows.RemoveAt(i); 从大索引号至小索引号删除,删除后会重排索引号