2017-07-17 98 views
1

我知道这是一个愚蠢的问题,我可能听起来有点困惑(因为我真的是)。我是一个编程软件的工作,但我是新来的C# 。 我有一个TabControl的窗体。在每个TabPage中,我有一个DataGridView。C#循环填充多个DataGridView

我需要为每个DataGridView的

while (reader.Read()) 
      { 
       DataTable dtSchema = reader.GetSchemaTable(); 
       DataTable dt = new DataTable(); 
       // You can also use an ArrayList instead of List<> 
       List<DataColumn> listCols = new List<DataColumn>(); 

       if (dtSchema != null) 
       { 
        foreach (DataRow drow in dtSchema.Rows) 
        { 
         string columnName = System.Convert.ToString(drow["ColumnName"]); 
         DataColumn column = new DataColumn(columnName, (Type)(drow["DataType"])); 
         column.Unique = (bool)drow["IsUnique"]; 
         column.AllowDBNull = (bool)drow["AllowDBNull"]; 
         column.AutoIncrement = (bool)drow["IsAutoIncrement"]; 
         listCols.Add(column); 
         dt.Columns.Add(column); 
        } 
       } 

       // Read rows from DataReader and populate the DataTable 
       while (reader.Read()) 
       { 
        DataRow dataRow = dt.NewRow(); 
        for (int i = 0; i < listCols.Count; i++) 
        { 
         dataRow[((DataColumn)listCols[i])] = reader[i]; 
        } 
        dt.Rows.Add(dataRow); 
       } 
       dataGridView1 = dt; 

      } 

      reader.NextResult(); 

执行这个代码,我不想复制和粘贴每个datagridview的代码,因为这应在这部分代码更改的唯一的话是对的名称DGV,但我不知道如何自动更改datagridview名称。 也许一些嵌套如果比较datagridview的名称与字符串可能是一个解决方案,但我想datagridview.tostring()不会给我的控制名称的字符串,但内容。 对不起,如果这样的问题已经存在,我无法找到它。

+0

创建与DataGridViews一个数组,并使用了/的foreach了它。 – Gusman

+0

感谢您的回答! –

回答

2

您可以使用foreach地遍历DGVs:

foreach (DataGridView dgv in new[] { dataGridView1, otherDGV }) 
{ 
    // code to happen to both DGVs goes here. 
} 
+0

非常感谢aswer mate –