datagrid 数据显示异常!高手来看看
背景:根据不同要求,在datagrid显示不同的表格,每张表的表头不完全一致,一次只显示一个表。这些表都是来自数据库
//在程序启动时:定义了一个全局变量dataset,一个全局字符串biaoming
public static DataSet inputrecordds = new DataSet();
public string biaoming="";
....
....
....
//按钮的功能:当biaoming= HC,显示A表;当biaoming=AR,显示B表
SqlDataAdapter sqlda = new SqlDataAdapter(sql1, connect);//从数据表提取数据到sqlda
inputrecordds.Tables.Clear();
sqlda.Fill(inputrecordds, "inputrecordtable");//放入数据的表命名为inputrecordtable
inputrecord.DataContext = inputrecordds;//把ds的数据set到datagrid的datacontaxet
点击按钮后,第一次运行正常显示,当把biaoming变化为AR后,datagrid就没有显示内容了;重新退出程序,先选择AR,显示也是正常,把biaoming改为HC,同样显示不了。
调试发现inpuetrecordds的数据是正确的,就是显示不到datagrid上。
后来把inputrecordds变成局部变量,就可以了根据biaoming的变化正常显示, 但由于其他按钮也用到inputrecordds数据(改变inputrecordds里面的数据),如果定义为局部,另一个按钮的功能就不能实现了。
//把inputrecordds变为局部变量的代码
SqlDataAdapter sqlda = new SqlDataAdapter(sql1, connect);//从数据表提取数据到sqlda
dataset inputrecordds=new dataset();
inputrecordds.Tables.Clear();
sqlda.Fill(inputrecordds, "inputrecordtable");//放入数据的表命名为inputrecordtable
inputrecord.DataContext = inputrecordds;//把ds的数据set到datagrid的datacontaxet
从这个代码看到,局部和全局是有区别的,定义为全局变量,就是为了能方便修改datagrid 的数据。
如何解决?谢谢