2010-01-03 4 views
1

초보자입니다. ASP.net DataReader 실행 기술

는 그 DataReader를 앞으로에만 읽기 전용 패션과 내가이있는 gridview가 모든 레코드를 채우는 않는 방법 아래 코드를

SqlDataReader reader=cmd.ExecuteReader(); 
gv1.DataSource=reader; 
gv.DataBind(); 

을 실행할 때 한 번에이 하나의 record.Suppose을 읽을에 작동 들었다? 독자는 읽기 당 하나의 행을 읽을 수 있기 때문에 GridView에서 마지막 행만 표시 할 수 있다고 생각했습니다.

답변

-1

BindData은 판독기에서 한 번에 하나씩 레코드를 읽어 GridView를 채 웁니다. GridView는 독자를 통해 서버에 대한 연결을 유지하지 않습니다.

0

내부적으로 DataReader의 Read() 메서드는 false를 반환 할 때까지 (더 이상 레코드가 없음을 나타낼 때까지) DataBinding 중에 호출됩니다. 각 레코드를 가져 오면 html에 추가되어 렌더링됩니다. MSDN 따르면

0

:

GridView 컨트롤은 데이터 소스 제어에 결합 될 수

(예 의 SqlDataSource, ObjectDataSource를하고 등)뿐만 아니라, 임의의 데이터 소스 그런 System.Data.DataView, System.Collections.ArrayList 또는 System.Collections.Hashtable)과 같은 System.Collections.IEnumerable인터페이스를 구현합니다. 적절한 데이터 소스 유형에 의 GridView 컨트롤을 바인딩하려면 다음 방법 중 하나 를 사용

방금 ​​GridView.DataSource에 SqlDataReader 개체 참조를 설정하고 볼 수 있듯이. GridView.DataBind 메서드를 호출하면 GridView는 (reader.Read()) 동안 해당 데이터를 읽고 해당 데이터를 채 웁니다.