日期:2014-05-19  浏览次数:20769 次

datagridview数据绑定问题,最后三十分了,达人指点
sqlConnection.Open();
//动态构建查询语句,每次生成的语句都可能不相同,这也引起了datatable架构的不同
SqlCommand   sqlCommand   =   new   SqlCommand(buildGroup(),   sqlConnection);
SqlDataAdapter   sqlDataAdapter   =   new   SqlDataAdapter(sqlCommand);

//如果应用下面这句(其中dataTable已在类成员级别进行了定义),则在第二次运行这个过程后,dataGridview中显示不出数据,只有一个标题行
//dataTable.Reset();

//如果应用下面这句,而不用上面的,程序运行正常,但是这样做,是不是在多次运行这段程序后,由于GC过程的不确定性,引起内存的大量占用呢?
DataTable   dataTable   =   new   DataTable();

sqlDataAdapter.Fill(dataTable);                
dataGridView1.DataSource   =   dataTable;

简单说一下:上面的那段代码,是按钮事件的一部分,就是动态构建SQL语句,查询结果与datagridview控件绑定。如果不每次都New一个DataTable的话,哪么第二次点击按钮执行这段程序后,绑定显示结果是不正常的,如何使之显示正常呢?

------解决方案--------------------
为什么要RESET? 你要重新读数据就要NEW出来 不过一般你可以把DATATABLE放在APP或者缓存中节省读取开销 不用再FILL
------解决方案--------------------
每次:dataTable = new DataTable();