c#-数据集和DataGridView
我制作了一个基本程序,用于向数据集添加值并将其显示到dataGridView:c#-数据集和DataGridView,c#,C#,我制作了一个基本程序,用于向数据集添加值并将其显示到dataGridView: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { DataTable table1 = new DataTable("Peop
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DataTable table1 = new DataTable("People");
table1.Columns.Add("id");
table1.Columns.Add("Name");
table1.Columns.Add("Age");
table1.Rows.Add(1, "Jack", 18);
table1.Rows.Add(2, "Tim", 18);
DataSet set = new DataSet("SetPeople");
set.Tables.Add(table1);
dataGridView1.DataSource = set;
dataGridView1.Update();
}
}
当我尝试它时,似乎什么都没有发生。dataGridView仍为空。知道我哪里出错了吗?试试这个
dataGridView1.DataSource = table1;
仅在Gridview中显示数据表不需要Ds
dataGridView1.DataSource = table1;
仅在Gridview中显示数据表并不需要Ds,Massimiliano Peluso是正确的。GridView将引用一个“表”,但更具体地说,当以断开连接的方式使用ADO.NET时,您将使用属于DataTable对象的DataColumn对象填充GridView。您还需要将dataTable绑定到GridView 一点细节: Net的数据集结构允许您以类似“表”的方式表示数据库,并允许这些表共享引用。所有这些都是以额外的内存开销为代价的,但是如果这不是一个高度可扩展的应用程序,并且您想让用户能够编辑行而不必每次都访问数据库,那么DataSet是一个不错的选择 如果不使用DataSet的功能(例如表关系),只需使用DataTable对象并填充它们,就可以节省一些开销 回答您的问题: GridView希望接收数据表作为数据源。该表可以包含多个列(将填充网格中的列)。您可以编写以下代码来专门访问数据表:
dataGridView1.DataSource = set.Tables["table1"]; // or by index if you prefer as there are several overloads.
此外,我将通过在上面描述的代码之后添加以下代码行来绑定数据:
dataGridView1.DataBind();
缺少DataBind()方法调用是问题的一部分
有一个很好的例子在C尖角网站:马西米利亚诺·佩卢索是正确的。GridView将引用一个“表”,但更具体地说,当以断开连接的方式使用ADO.NET时,您将使用属于DataTable对象的DataColumn对象填充GridView。您还需要将dataTable绑定到GridView 一点细节: Net的数据集结构允许您以类似“表”的方式表示数据库,并允许这些表共享引用。所有这些都是以额外的内存开销为代价的,但是如果这不是一个高度可扩展的应用程序,并且您想让用户能够编辑行而不必每次都访问数据库,那么DataSet是一个不错的选择 如果不使用DataSet的功能(例如表关系),只需使用DataTable对象并填充它们,就可以节省一些开销 回答您的问题: GridView希望接收数据表作为数据源。该表可以包含多个列(将填充网格中的列)。您可以编写以下代码来专门访问数据表:
dataGridView1.DataSource = set.Tables["table1"]; // or by index if you prefer as there are several overloads.
此外,我将通过在上面描述的代码之后添加以下代码行来绑定数据:
dataGridView1.DataBind();
缺少DataBind()方法调用是问题的一部分
在C尖角现场有一个很好的例子:
您也可以这样做:
您也可以这样做: