2013-12-22 3 views
1

하나의 테이블로 데이터베이스를 구축하고이 테이블에서 id을 선택하는 저장 프로 시저를 만들었으므로 첫 번째 LINQ를 ASP 웹 사이트로 만들려고합니다.저장 프로 시저를 사용하여 LinQ에서 LinQ로 프로젝트

ALTER PROCEDURE select_article_by_id 
@artcileid int 
AS 
    select * from articles where [email protected] 
    RETURN 

는 내가 끌고 나는 웹 사이트를 실행할 때이 문제가

An invalid data source is being used for articleDL. 
A valid data source must implement either IListSource or IEnumerable. 

을 나타 내 DataClasses.dbml
로 그것을 떨어 뜨린 날이 SORCE 오류 제공 :

Line 16: string art_id = Request.QueryString["art_id"]; 
Line 17: if (art_id != null) 
Line 18: articleDL.DataSource = DS.select_article_by_id(int.Parse(art_id)).Single(); 
Line 19: 
Line 20: else 

답변

0

당신은 그에 따라 데이터 소스를 설정하는 :

articleDL.DataSource = DS.select_article_by_id(int.Parse(art_id)).Single(); 

.Single()을 사용하면 하나를 복용 만 select_article_by_id에 의해 반환 된 기록하고 그 단일 레코드 데이터 소스 만들려고 노력. 그것은 허용되지 않는다는 것을 말하고 있습니다.

목록에 IEnumerable이 구현되어 있습니다. 입니다. 하나의 레코드가 이 아니고이 아닌 IEnumerable을 구현하지 않습니다.

.Single().ToList()으로 바꾸어보십시오.

+0

오류가 표시되지 않았지만 결과가 없습니다. 그냥 빈 페이지 –

+0

기사 데이터리스트에 레코드가 표시되지 않았습니다 !! –

+0

흠. 일시적으로 코드를 if (art_id! = null) {var myRecords = DS.select_article_by_id (int.Parse (art_id))로 변경하려고 할 수 있습니다. ToList(); articleDL.DataSource = myRecords; }', 중단 점을 설정하고 실제로 행이 조회에 의해 리턴되는지 확인하십시오. 어쩌면 지정된 기사 ID에 대해 표시 할 수있는 것이 아무것도 없습니까? –

0
ALTER PROCEDURE select_article_by_id 
@artcileid int 
AS 
BEGIN 
    SET NOCOUNT ON; --<-- to suppress the message like "(100 row(s) affected)" 

    select * from articles where [email protected] 
END 

여기에 반환 키워드가 필요하지 않습니다.

관련 문제