2011-05-03 4 views
6

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(); 
    } 

및이 오류가 발생했습니다.

System.InvalidOperationException : 시퀀스에 요소가 두 개 이상 들어 있습니다.

누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

+0

당신은 ** ToList() **로 변환해야한다고 생각합니다. gridview에 대한 DataSource로 작동하려면 – V4Vendetta

+0

ToList 함수가이 오류를 줬습니다. 데이터 소스가 유효하지 않습니다. 체육. IListSource, IEnumerable 또는 IDataSource 여야합니다. ELAPDBEntities db = new ELAPDBEntities(); var assetFinan = db.AssetFinancings의 u 위치 여기서 u.AppID == AppID select u; (assetFinan! = null) gvAssetFinance.DataBind(); } – Kay

+0

ToList를 ** pro ** – V4Vendetta

답변

2

Duplication을 확인한 다음 바인딩 해보십시오.

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(); 
} 

참고 : 그대로 당신이 DataSource에 추가 할 때 ToList()을 할 생각

ProductDBEntities db = new ProductPDBEntities(); 
GridView1.DataSource = (from u in db.Products where u.PID == 1 select u).First(); 
GridView1.DataBind(); 
+1

문제가 표시됩니다. 오류가 발생했습니다 .. 코드를 게시 할 수 있습니다. 어떻게 gridview 바인딩 할? – Kay

+1

@ 케이 내 대답을 업데이트,보세요 –

+0

'First()'는'Product' 객체를 반환합니다. 나는이 객체가'ToList()'메소드를 가지고 있다고 생각하지 않는다. – Slauma

0

첫째, 당신은 당신이 바인딩에 대해 하나 개의 결과를 얻을 수 있는지 확인하기 위해 좁은 방() 메서드를 사용하여, PID = 1

번째와 두 개 이상의 제품이 있는지 확인하기 위해 데이터를 확인 할 수 :

var pro = (from u in db.Products where u.PID == 1 select u).First(); 
+0

네, 여러 레코드가 있습니다. 그걸 바인딩하는 데 gridview를 사용하고 있습니다 .. – Kay

0

:

나는 전체 코드를 표시하기 위해 내 마지막 대답을 편집 한 a GridView은 n 개의 행을 취해야합니다. No row limit.

gv.DataSource = (from u in db.Products .First(u=> u.PID==1)).ToList(); 

당신은 테이블과 테이블 세부 사항이 하나를 사용할 수있는 경우 :

0

스토어 변수는이 코드가 도움이 될 수있는 오브젝트 유형 및 그리드

1

에 데이터 소스로 객체 유형을 할당

gv.DataSource = (from a in context.tblorder.First(p => p.id == 19).tblorderdetail where a.ID == 19 select a).ToList(); 
관련 문제