【问题标题】:How can I add data from class properties into a datatable如何将类属性中的数据添加到数据表中
【发布时间】:2017-10-30 03:50:11
【问题描述】:

我目前有一个有 4 个属性的类

public class DataEntry
{
    public string Name { get; internal set; }
    public string Version { get; internal set; }
    public string TotalDownloads { get; internal set; }
    public string LastUpdated { get; internal set; }
}

我形成了一个对象的 ConcurrentQueue(使用之前的类属性)

var list = new ConcurrentQueue<DataEntry>();

foreach (var i in Enumerable.Range(0, 2))
{
    list.Enqueue(new DataEntry { Name = "TestName", Version = "Test Version", TotalDownloads = "TestDownloads", LastUpdated = "LestDate" });
}

然后我将这个 ConcurrentQueue 作为列表返回

return list.ToList();

我正在尝试使用此数据填充 Windows 窗体 datagridview。

我知道可以像这样填充数据网格视图

DataGrid.DataSource = Class.Function();

但是,我想使用数据表作为 datagridviews 数据源。

尝试将这些数据放入我尝试过的数据表中

private DataTable dataTable = new DataTable("dataTable");

private async void Form1_Load(object sender, EventArgs e)
{
    dataTable.Columns.Add("Name", typeof(string));
    dataTable.Columns.Add("Downloads", typeof(string));
    dataTable.Columns.Add("Updated", typeof(string));
    dataTable.Columns.Add("Version", typeof(string));

    foreach (var item in await Class.Function())
    {
        dataTable.Rows.Add(item);
    }

    dataGrid.DataSource = dataTable;

}

但是这只是将所有数据放入第一列(以及字符串前面的类名 DataEntry)

如何将数据格式化为数据表?

【问题讨论】:

  • 尝试使用getMoreAddonsTable.Rows.Add(item.Name, item.Downloads, item.Updated, item.Version); .. 其中item.Name 进入第1 列,item.Downloads 进入第2 列,依此类推

标签: c# .net datagridview datatable


【解决方案1】:

根据@o_O 的建议,我设法修改了 for 循环以完全按照我的意愿行事

foreach (var item in await Class.function())
        {
            dataTable.Rows.Add(item.Name, item.TotalDownloads, item.LastUpdated, item.Version);
        }

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多