无法从List加载DataGridView中的数据

时间:2015-10-27 08:09:25

标签: c# winforms datagridview

我正在尝试在我的Windows窗体应用程序中的DataGridView中显示我的数据库中的数据,但出于某种原因,当我使用不起作用的DataSource属性时,这是我的代码(它只是一个我正在使用的虚拟列表,所以我可以看到我做错了什么。

private void Form1_Load(object sender, EventArgs e)
{
    List<Client> list = new List<Client>();
    Client client1 = new Client(1, "joro", "2014-12-12", 5);
    Client client2 = new Client(2, "moro", "2015-1-12", 3);
    list.Add(client1);
    list.Add(client2);
    dataGridClients.DataSource = list;
}

和“client”类(它与我想要将信息放在网格中的数据库中的表相同)

public class Client
{
    private int clientId;
    private string clientName;
    private string dateStarted;
    private int cycleLength;

    public Client(int id, string name, string date, int length)
    {
        clientId = id;
        clientName = name;
        dateStarted = date;
        cycleLength = length;
    }
}

因此,当表单加载时,数据网格中没有任何内容。我是新手,我以前从未使用数据网格,所以我做错了什么?

3 个答案:

答案 0 :(得分:1)

当您设置DataGridView.DataSource值时,网格应为列表中的public properties个对象创建列

private课程中只有variables Client。创建相应的属性

public class Client
{
   private int clientId;
   // editable property => editable column
   public int ClientId { get { return clientId; } set {clientId = value;} }

   private string clientName;
   // readonly property => readonly column
   public string ClientName { get { return clientName; } }

   // ... same for the rest variables
}

答案 1 :(得分:0)

在给出DataSource之后绑定数据。

dataGridClients.DataBind();

并为所有数据设置autogeneratecolumns="true",您必须手动绑定网格以获取相应的字段。

<asp:gridview id="dataGridClients" 
  autogeneratecolumns="True"
  emptydatatext="No data available."  ...

答案 2 :(得分:0)

要将新数据添加到列表中,您可以执行目录示例,如下所示

g.copy(
  partnumber = jGood.partnumber.orElse(g.partnumber),
  cost = jGood.cost.orElse(g.cost)
)

步骤1创建类实体

List<Client> list = new List<Client>();
            list.Add(new Client { x = 1, s = "", d = "", dd = 2 }); 

第二次将数据添加到类实体

public class Client
{
    public int x { get; set; }
    public string s { get; set; }
    public string d { get; set; }
    public int dd { get; set; }
}

最后将数据源添加到DG

 List<Client> list = new List<Client>();
            list.Add(new Client { x = 1, s = "", d = "", dd = 2 });
            list.Add(new Client { x = 1, s = "", d = "", dd = 2 });