c# 中如何把实体类绑定到dataGridView并显示出来。
在c#三层结构中,我用实体类从数据库中读取了一张表在里面。现在在表示层中有一个datagridview控件,我把这个实体类绑定到了它的数据源。不知道如何像dateset一...
在c#三层结构中,我用实体类从数据库中读取了一张表在里面。现在在表示层中有一个datagridview控件,我把这个实体类绑定到了它的数据源。不知道如何像dateset一样,把表中的数据显示出来。谢谢 了
展开
7个回答
展开全部
将你的实体对象一个一个的加载进ArrayList对象中,在将ArrayList作为数据源绑定到datagridview空间里就行了.
注意:实体类必须每个字段属性话后才能作为绑定后的有效字段.
比如必须:
private int age= 0;
public int Age{ get{ return age;} } //必须实现get,这样数据集中就有Age这个字段了。
以下是我给你写的例子:
using System;
using System.Data;
public class Book
{
private string _Name = "";
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private string _Title = "";
public string Title
{
get { return _Title; }
set { _Title = value; }
}
private int _Pages = 0;
public int Pages
{
get { return _Pages; }
set { _Pages = value; }
}
}
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections; //ArrayList所处的空间
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ArrayList al = new ArrayList();
for (int i = 0; i < 6; i++) {
Book b = new Book();
b.Name = "AAA";
b.Pages = i + 1000;
b.Title = "leo";
al.Add(b);
}
this.GridView1.DataSource = al;
this.GridView1.DataBind();
//使用方式和DataView等对象使用方式一致。其优点是更好的数据支持!
}
}
记得马上给分 ^o^
注意:实体类必须每个字段属性话后才能作为绑定后的有效字段.
比如必须:
private int age= 0;
public int Age{ get{ return age;} } //必须实现get,这样数据集中就有Age这个字段了。
以下是我给你写的例子:
using System;
using System.Data;
public class Book
{
private string _Name = "";
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private string _Title = "";
public string Title
{
get { return _Title; }
set { _Title = value; }
}
private int _Pages = 0;
public int Pages
{
get { return _Pages; }
set { _Pages = value; }
}
}
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections; //ArrayList所处的空间
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ArrayList al = new ArrayList();
for (int i = 0; i < 6; i++) {
Book b = new Book();
b.Name = "AAA";
b.Pages = i + 1000;
b.Title = "leo";
al.Add(b);
}
this.GridView1.DataSource = al;
this.GridView1.DataBind();
//使用方式和DataView等对象使用方式一致。其优点是更好的数据支持!
}
}
记得马上给分 ^o^
展开全部
这样来操作
List<实体类> list = new List<实体类>();
循环读取DataReader
while(dr.Read())
{
实体类 t = new 实体类();
//下面的代码把datareader封装到单个实体中
list.Add(t);
}
绑定的时候直接datagridview.DataSource= list
和dataset绑定其实是一样的,不过绑定的实体类的属性
使用的是反射的方式进行的绑定
List<实体类> list = new List<实体类>();
循环读取DataReader
while(dr.Read())
{
实体类 t = new 实体类();
//下面的代码把datareader封装到单个实体中
list.Add(t);
}
绑定的时候直接datagridview.DataSource= list
和dataset绑定其实是一样的,不过绑定的实体类的属性
使用的是反射的方式进行的绑定
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在实体类里加个GetDataTable函数,返回一个datetable就可以直接给datagridview绑定了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public IList<You_Model> ReBind()
{
IList<You_Model> ReModel=new List<You_Model>();
//execmd 读数据什么的
//dr 然后getstring add到ReModel
return ReModel;
}
//绑定
数据控件或其他的.datasource=ReBind();//你可以把它看作一个集合(相当于ds,dr什么的),多维数组。
{
IList<You_Model> ReModel=new List<You_Model>();
//execmd 读数据什么的
//dr 然后getstring add到ReModel
return ReModel;
}
//绑定
数据控件或其他的.datasource=ReBind();//你可以把它看作一个集合(相当于ds,dr什么的),多维数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
出现的问题就是dataGridView中的数据为null就会报错,加上判断就行了。
解决方法供参考:
1.设置dgvSurchargeText.AutoGenerateColumns = false;
2.判断dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value!=null
其中dgv是dataGridView。
解决方法供参考:
1.设置dgvSurchargeText.AutoGenerateColumns = false;
2.判断dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value!=null
其中dgv是dataGridView。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询