DataGrid 绑定DataTable,高手进来看看
GetZhimaData   gzd   =   new   GetZhimaData(); 
 ArrayList   al   =   gzd.ImportDataFromDB(); 
 DataTable   dt   =   new   DataTable();   
 dt.Columns.Clear(); 
 dt.TableName   =    "zhima ";   
 //添加列 
 dt.Columns.Add( "ID号 ",   typeof(String)); 
 dt.Columns.Add( "期数 ",   typeof(String)); 
 dt.Columns.Add( "结果 ",   typeof(String)); 
 #region    "动态列 " 
 if(ckbSimpleCondition.CheckedItems.Count   !=0)               //第一次我没有选择,不执行这个。第二次执行. 
 { 
 	for(int   i=0;i <ckbSimpleCondition.CheckedItems.Count;i++) 
 	{    
 		dt.Columns.Add(ckbSimpleCondition.CheckedItems[i].ToString(),   typeof(String));    
 		string   strModeName   =   ckbSimpleCondition.CheckedItems[i].ToString();    
 		alModeName.Add(strModeName); 
 		//临时做法    
 		if(i==0) 
 		{ 
 			alModeValue.Add(mode0005);    
 		}    
 		else   if(i==1)    
 		{    
 			alModeValue.Add(mode0621); 
 		}    
 		else 
 		{ 
 			alModeValue.Add(mode2227); 
 		} 
 	} 
 } 
 #endregion   
 #region   开始添加数据 
 //开始添加数据 
 #endregion   
 dataGrid1.DataSource   =   dt;     
 上面的代码是按钮事件中的source 
 我用DataTable   绑定到DataGrid上。 
 第一次不执行代码中的for循环。DataTable中就只有三列。 
 我第二次选择ckbSimpleCondition中的三项。经过调试。往DataTable中添加数据之后。 
 DataTable中确实已经新增了三列。并且里面有值。 
 而dataGrid1.DataSource   =   dt;执行后。并没有发现dataGrid1中列的变化--它还是三列。没变
------解决方案--------------------AutoGenerateColumns属性设为True 看看