如何从datatable中获取某些列到datagridview?

问题描述:

我有一个数据表,我想从中提取某些信息(仅限特定行和特定列)。我试图使用下面的代码,但是当我运行它时,我得到了一个超出范围错误的索引,而且我不确定我正在做什么是从数据表中获取某些数据的最佳方法到一个datagridview。有任何想法吗?如何从datatable中获取某些列到datagridview?

 currentRow = 0; 
     int dataGridRow = 0; 
     foreach (DataRow row in resultsDT.Rows) 
     { 
      string value = resultsDT.Rows[currentRow]["HighLow"].ToString(); 
      if (value.Equals("High") | value.Equals("Low")) 
      { 
       dataGridView2.Rows[dataGridRow].Cells["colHighLow"].Value = resultsDT.Rows[currentRow]["HighLow"]; 
       dataGridView2.Rows[dataGridRow].Cells["colDifference"].Value = resultsDT.Rows[currentRow]["Difference"]; 
       dataGridView2.Rows[dataGridRow].Cells["colMbrSep"].Value = resultsDT.Rows[currentRow]["MBRSEP"]; 
       dataGridView2.Rows[dataGridRow].Cells["colLocation"].Value = resultsDT.Rows[currentRow]["LOCATION"]; 
       dataGridView2.Rows[dataGridRow].Cells["colDistrict"].Value = resultsDT.Rows[currentRow]["DIST"]; 
       dataGridView2.Rows[dataGridRow].Cells["colAddress"].Value = resultsDT.Rows[currentRow]["ADDR1"]; 
       dataGridView2.Rows[dataGridRow].Cells["colMeter"].Value = resultsDT.Rows[currentRow]["METER"]; 
       dataGridView2.Rows[dataGridRow].Cells["colKWh"].Value = resultsDT.Rows[currentRow]["KWH"]; 
       dataGridRow++; 
      } 
      currentRow++; 
     } 
+0

哪里发生异常? –

+0

dataGridView2包含多少行? –

+0

至少是否成功地在网格中添加了一个值,或者在开始时失败? –

我只能猜测你需要的是

currentRow = 0; 
     int dataGridRow = 0; 
     foreach (DataRow row in resultsDT.Rows) 
     { 
      string value = resultsDT.Rows[currentRow]["HighLow"].ToString(); 
      if (value.Equals("High") | value.Equals("Low")) 
      { 
       //THIS LINE 
       dataGridView2.Rows.Add(); 

       dataGridView2.Rows[dataGridRow].Cells["colHighLow"].Value = resultsDT.Rows[currentRow]["HighLow"]; 
       dataGridView2.Rows[dataGridRow].Cells["colDifference"].Value = resultsDT.Rows[currentRow]["Difference"]; 
       dataGridView2.Rows[dataGridRow].Cells["colMbrSep"].Value = resultsDT.Rows[currentRow]["MBRSEP"]; 
       dataGridView2.Rows[dataGridRow].Cells["colLocation"].Value = resultsDT.Rows[currentRow]["LOCATION"]; 
       dataGridView2.Rows[dataGridRow].Cells["colDistrict"].Value = resultsDT.Rows[currentRow]["DIST"]; 
       dataGridView2.Rows[dataGridRow].Cells["colAddress"].Value = resultsDT.Rows[currentRow]["ADDR1"]; 
       dataGridView2.Rows[dataGridRow].Cells["colMeter"].Value = resultsDT.Rows[currentRow]["METER"]; 
       dataGridView2.Rows[dataGridRow].Cells["colKWh"].Value = resultsDT.Rows[currentRow]["KWH"]; 
       dataGridRow++; 
      } 
      currentRow++; 
     } 
+0

就是这样,哈里斯!非常感谢! – Kevin