不能从列表中加载DataGridView中的数据
本文关键字:数据 DataGridView 加载 列表 不能 | 更新日期: 2023-09-27 18:19:19
我试图显示从我的数据库在DataGridView
在我的windows窗体应用程序的数据,但出于某种原因,当我使用的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;
}
}
所以当表单加载时,数据网格中没有任何内容。我在这方面很新,我以前从未使用过数据网格,所以我做错了什么?
设置DataGridView.DataSource
值时,grid应该为List中对象的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
}
在给定数据源后绑定数据
dataGridClients.DataBind();
并为所有数据设置autogeneratecolumns="true"
,否则您必须手动为适当的字段绑定网格。
<asp:gridview id="dataGridClients"
autogeneratecolumns="True"
emptydatatext="No data available." ...
要向列表中添加新数据,可以按如下目录示例执行
List<Client> list = new List<Client>();
list.Add(new Client { x = 1, s = "", d = "", dd = 2 });
步骤1创建类实体
public class Client
{
public int x { get; set; }
public string s { get; set; }
public string d { get; set; }
public int dd { get; set; }
}
添加数据到类实体
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 });
最后添加数据源到DG
dataGridClients.DataSource = list;