当前位置: 代码迷 >> .NET Framework >> 帮忙看看有关问题在哪。
  详细解决方案

帮忙看看有关问题在哪。

热度:117   发布时间:2016-05-02 00:59:52.0
帮忙看看问题在哪。。
下面为什么不进入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注释掉,输出一条数据呢??
  相关解决方案