C#导入xls到dataGridView1中,dataGridView1.Rows.Count只能变大不能变小。这是怎么回事,要怎么处理?
System.Data.DataTabledt;privatevoidbtnDr_Click(objectsender,EventArgse){stringsheetNa...
System.Data.DataTable dt;
private void btnDr_Click(object sender, EventArgs e)
{
string sheetName = "sheet1";
string filePath = "D:\\111.xls";
string strConn = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source="
+ filePath + ";"
+ "Extended Properties='Excel 8.0;HDR=YES,IMEX=1'";
string strExcel = string.Format("SELECT * FROM [{0}$]", sheetName);
dt = new System.Data.DataTable();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(strExcel, conn);
da.Fill(dt);
}
dataGridView1.DataSource = dt;
int rowsCount = dataGridView1.Rows.Count;
}
第一次调试运行这个代码的时候,一开始有一个XLS表中有97行数据,我把这个97行数据导入到了dataGridView1中,dataGridView1.Rows.Count显示的是97行。第二次或第N次或重启电脑,我再调试运行这个代码的时候,将一个XLS表有33行的数据导入到dataGridView1中,dataGridView1.Rows.Count依然还是显示的是97行。而将150行的xls导入到dataGridView1中,dataGridView1.Rows.Count就显示150行了。dataGridView1.Rows.Count只能变大不能变小, 这是为什么,要怎么处理。麻烦大神帮忙看看,让这代码也能将dataGridView1.Rows.Count变小。 展开
private void btnDr_Click(object sender, EventArgs e)
{
string sheetName = "sheet1";
string filePath = "D:\\111.xls";
string strConn = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source="
+ filePath + ";"
+ "Extended Properties='Excel 8.0;HDR=YES,IMEX=1'";
string strExcel = string.Format("SELECT * FROM [{0}$]", sheetName);
dt = new System.Data.DataTable();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(strExcel, conn);
da.Fill(dt);
}
dataGridView1.DataSource = dt;
int rowsCount = dataGridView1.Rows.Count;
}
第一次调试运行这个代码的时候,一开始有一个XLS表中有97行数据,我把这个97行数据导入到了dataGridView1中,dataGridView1.Rows.Count显示的是97行。第二次或第N次或重启电脑,我再调试运行这个代码的时候,将一个XLS表有33行的数据导入到dataGridView1中,dataGridView1.Rows.Count依然还是显示的是97行。而将150行的xls导入到dataGridView1中,dataGridView1.Rows.Count就显示150行了。dataGridView1.Rows.Count只能变大不能变小, 这是为什么,要怎么处理。麻烦大神帮忙看看,让这代码也能将dataGridView1.Rows.Count变小。 展开
1个回答
展开全部
我觉得这不是程序的问题吧,应该是你的111.xls的问题,前面这里面是97行,然后你把它删成了33行,其实它有97行,其他的行是空的。所以当它实际有150行的时候,它会显示150行,你把它删成120行,它就还是150行。
追问
不是的,我试了新建xls只添加一行数据,可导入到dataGridView1的时候还是现实有150行
追答
我用过这个控件的,它的行数初始状态只跟数据源有关,你这样尝试一下:1、每次运行时,重新生成解决方案一下。2、使用之前刷新dataGridView1(dataGridView1.Refresh())。然后再给它新的数据源。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询