Как связать gridview с помощью linq / Entity Framework? - PullRequest
7 голосов
/ 03 мая 2011

Мне нужно связать 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();
    }

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

System.InvalidOperationException: последовательность содержит более одного элемента

Может кто-нибудь сказать, что я не так делаю?

Ответы [ 6 ]

3 голосов
/ 03 мая 2011

Отметьте Duplication и попробуйте связать его.

Я отредактировал свой последний ответ, чтобы отобразить полный код:

ProductDBEntities db = new ProductPDBEntities();
GridView1.DataSource = (from u in db.Products where u.PID == 1 select u).First();
GridView1.DataBind();
1 голос
/ 01 августа 2012

Этот код может быть полезен:

    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();
0 голосов
/ 31 декабря 2018

Я решаю так:

ProductDBEntities ctx = new ProductDBEntities ();
var q1 = ctx.Products.Where(x => x.PID == 1).ToList();
GridView1.DataSource = q1;
GridView1.DataBind();

Я пробую это.Это работа.

0 голосов
/ 18 июня 2012

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

0 голосов
/ 03 мая 2011

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

0 голосов
/ 03 мая 2011

Во-первых, вы можете проверить свои данные, чтобы увидеть, есть ли более одного продукта с PID = 1.

Во-вторых, вы можете использовать метод .First (), чтобы убедиться, что вы получаете только один результат для привязки:

var pro = (from u in db.Products where u.PID == 1 select u).First();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...