首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

帮忙看看有关问题在哪。

2012-01-14 
帮忙看看问题在哪。。下面为什么不进入foreach循环C# codepublic void EcxelToDataGridView(string filePath

帮忙看看问题在哪。。
下面为什么不进入foreach循环

C# code
public void EcxelToDataGridView(string filePath, DataGridView dgv)         {             //根据路径打开一个Excel文件并将数据填充到DataSet中             string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入             OleDbConnection conn = new OleDbConnection(strConn);             conn.Open();             string strExcel = "";             OleDbDataAdapter myCommand = null;             DataSet ds = null;             strExcel = "select  * from  [sheet1$]";             myCommand = new OleDbDataAdapter(strExcel, strConn);             ds = new DataSet();             myCommand.Fill(ds, "table1");             //根据DataGridView的列构造一个新的DataTable             System.Data.DataTable tb = new System.Data.DataTable();             foreach (DataGridViewColumn dgvc in dgv.Columns)             {                 if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))                 {                     DataColumn dc = new DataColumn();                     dc.ColumnName = dgvc.DataPropertyName;                     //dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable                     tb.Columns.Add(dc);                 }             }             //根据Excel的行逐一对上面构造的DataTable的列进行赋值             foreach (DataRow excelRow in ds.Tables[0].Rows)             {                 int i = 0;                 DataRow dr = tb.NewRow();                 [b]//这里的foreach循环不走(问题在这里!!!!)[/b][color=#FF0000][/color][u][/u]                foreach (DataColumn dc in tb.Columns)                 {                     dr[dc] = excelRow[i];                     i++;                 }                 tb.Rows.Add(dr);             }             //在DataGridView中显示导入的数据             dgv.DataSource = tb;


[解决办法]
不进入循环的原因:
(1)之前的代码跳出了 - 你不符合
(2)进入了,你没发现
(3)集合为空
(4)出现了异常

[解决办法]
先把foreach注释掉,输出一条数据呢??

热点排行