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:シーケンスに複数の要素が含まれています
誰かが私が間違っていることを教えてもらえますか?
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();
ProductDBEntities ctx = new ProductDBEntities ();
var q1 = ctx.Products.Where(x => x.PID == 1).ToList();
GridView1.DataSource = q1;
GridView1.DataBind();
やってみます。うまくいきます。
まず、データをチェックして、PID = 1の製品が複数あるかどうかを確認します。
次に、.First()メソッドを使用して、バインドの結果が1つだけになるようにすることができます。
var pro = (from u in db.Products where u.PID == 1 select u).First();
変数をオブジェクトタイプに格納し、オブジェクトタイプをデータソースとしてグリッドに割り当てます
DataSource
に追加するときは、ToList()
を実行する必要があると思います。
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
。