Как привязать gridview с помощью linq / Entity Framework?

мне нужно привязать 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();
    }

и получаю эту ошибку.

5 ответов


Регистрация 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();

сохраните переменную в тип объекта и назначьте тип объекта в качестве источника данных grid


Я думаю, что вы должны сделать 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.