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变小。
展开
 我来答
祜风
2015-08-27 · TA获得超过226个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:133万
展开全部
我觉得这不是程序的问题吧,应该是你的111.xls的问题,前面这里面是97行,然后你把它删成了33行,其实它有97行,其他的行是空的。所以当它实际有150行的时候,它会显示150行,你把它删成120行,它就还是150行。
追问
不是的,我试了新建xls只添加一行数据,可导入到dataGridView1的时候还是现实有150行
追答
我用过这个控件的,它的行数初始状态只跟数据源有关,你这样尝试一下:1、每次运行时,重新生成解决方案一下。2、使用之前刷新dataGridView1(dataGridView1.Refresh())。然后再给它新的数据源。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式