将列表转换为DataGridView

时间:2015-04-28 12:00:11

标签: c# datagridview

我正在尝试将字符串数组转换为DataGridView,但到目前为止收效甚微。为此目的调用下面的方法,但它似乎没有返回任何表。

调试时我可以看到我从cont.GetAllEmployee()获取正确的值,但是当调试进入ConvertListToDataTable(list)时,调试没有显示该异常的方法。

这是我目前的代码:

private DataTable ConvertListToDataTable(List<WindowsFormsApplication1.ServiceReference1.ArrayOfString> list)
    {
        DataTable table = new DataTable();
        List<string> columnNames = list[0];


        for (int i = 0; i < columnNames.Count; i++)
        {

            table.Columns.Add(columnNames[i].ToString());
        }

        foreach (var array in list)
        {
            table.Rows.Add(array);
        }

        return table;

    }


List <WindowsFormsApplication1.ServiceReference1.ArrayOfString> list = cont.GetAllEmployee();

                   dataGridView.DataSource = ConvertListToDataTable(list);

1 个答案:

答案 0 :(得分:-1)

必须通过DataTable.NewRow()方法实现新行,以获得与DataTable具有相同方案的新DataRow。

  private DataTable ConvertListToDataTable(List<WindowsFormsApplication1.ServiceReference1.ArrayOfString> list)
        {
            DataTable table = new DataTable();
            List<string> columnNames = list[0];


        for (int i = 0; i < columnNames.Count; i++)
        {

            table.Columns.Add(columnNames[i].ToString());
        }

        foreach (var array in list)
        {
            var NewRow = table.NewRow();
            for(int i = 0; i < columnNames.Count)
            {
                NewRow[columnNames[i]] = array[i];
            }
            table.Rows.Add(NewRow);
        }

        return table;

    }


    List <WindowsFormsApplication1.ServiceReference1.ArrayOfString> list = cont.GetAllEmployee();
                   dataGridView.DataSource = ConvertListToDataTable(list);
                   dataGridView.DataBind();