我需要绑定GridView
,我使用这个代码:
ProductDBEntities db = new ProductPDBEntities();
var pro = from u in db.Products where u.PID == 1 select u;
if (pro != null)
{
GridView1.DataSource = pro;
GridView1.DataBind();
}
并得到这个错误。
谁能告诉我我做错了什么?系统。InvalidOperationException:序列包含不止一个元素
检查Duplication
,然后尝试绑定。
我已经编辑了我的最后一个答案,以便显示完整的代码:
ProductDBEntities db = new ProductPDBEntities();
GridView1.DataSource = (from u in db.Products where u.PID == 1 select u).First();
GridView1.DataBind();
下面的代码可能会有帮助:
gv.DataSource = (from u in db.Products .First(u=> u.PID==1)).ToList();
如果你有一个表和表的细节可以使用这个:
gv.DataSource = (from a in context.tblorder.First(p => p.id == 19).tblorderdetail where a.ID == 19 select a).ToList();
首先,您可以检查您的数据,看看是否有多个产品的PID = 1。
其次,您可以使用.First()方法来确保只得到一个绑定结果:var pro = (from u in db.Products where u.PID == 1 select u).First();
将变量存储为对象类型,并将对象类型指定为网格的数据源
我认为你必须做ToList()
时,添加到DataSource
:
ProductDBEntities db = new ProductPDBEntities();
var pro = from u in db.Products where u.PID == 1 select u;
if (pro != null)
{
GridView1.DataSource = pro.ToList();
GridView1.DataBind();
}
注意:因为它是一个GridView
,必须采取n行数。No row limit
.
我这样解决:
ProductDBEntities ctx = new ProductDBEntities ();
var q1 = ctx.Products.Where(x => x.PID == 1).ToList();
GridView1.DataSource = q1;
GridView1.DataBind();
我试过了。它的工作。