我尝试通过linq在gridview中显示数据这是我尝试的
public void vehcile(string id)
{
Entities1 wr = new Entities1();
List<spchile_Result> sv = wr.spchile(id).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("Number",typeof(int));
dt.Columns.Add("RegNo", typeof(string));
foreach(var c in sv)
{
dt.Rows.Add(c.Number,c.RegNo)
}
GridView1.DataSource=;
GridView1.DataBind();
return dt;
}
更新
好的,我现在要尽量减少不。代码行并直接绑定而不是添加列时,我这样做显示错误
public DataTable vehcile(string id)
{
Entities1 wr = new Entities1();
GridView1.DataSource=wr.spvechile(id);
GridView1.DataBind();
return ;
}
protected void Page_Load(object sender, EventArgs e)
{
if(!this.IsPostBack)
{
this.vehcile(id);
}
}
此节目错误
错误10可转换为&#39; System.Data.DataTable&#39;的类型的对象。需要
错误9名称&#39; id&#39;在当前上下文中不存在
现在我如何返回数据以及如何设置数据源?
任何解决方案?
答案 0 :(得分:0)
在您的案例中设置DataSource
dt
的值。
GridView1.DataSource=dt;
GridView1.DataBind();
您的方法的return type
也是void
,并且您将返回DataTable
,这将导致错误。
如果您打算将DataTable
更改return type
更改为DataTable
public DataTable vehcile(string id)
{
//your code
}
答案 1 :(得分:0)
GridView1.DataSource=sv;
GridView1.DataBind();
为什么需要返回返回类型为无效的数据。
你可以像
一样返回public List<spchile_Result> yourmethod(int id)
{
...
return sv;
}
答案 2 :(得分:0)
将数据表设置为网格视图的数据源,方法的返回类型应为DataTable
而不是void
GridView1.DataSource=dt;
GridView1.DataBind();
答案 3 :(得分:0)
public DataTable vehcile(string id)
{
Entities1 wr = new Entities1();
List<spchile_Result> sv = wr.spchile(id).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("Number",typeof(int));
dt.Columns.Add("RegNo", typeof(string));
foreach(var c in sv)
{
dt.Rows.Add(c.Number,c.RegNo)
}
GridView1.DataSource=dt;
GridView1.DataBind();
return dt;
}