2009-12-16 6 views
2

GridView.DataBind()을 사용하여 SQLDataSourceGridView에 바인딩하고 이러한 쿼리를 실행하는 데 상당한 시간이 걸릴 수 있습니다.닫기 SQLDataSource 연결

진행중인 코드를 취소하는 코드는 무엇입니까? DataBind()?

DataBind()을 중지하거나 DB 연결을 종료 할 수있는 방법을 찾을 수 없습니다.

리 바인드 시도 :

myConn.ConnectionsString = "" 
myConn.SelectCommand = "" 
myGrid.DataSource = Nothing 
myGrid.DataBind() 

폐기 시도

myConn.Dispose() 
myGrid.Dispose() 

어느 시도가 실제로 연결을 마감했다. 오라클은 아직도 쿼리가 연결되어 있고 쿼리를 실행하고 있음을 나타냅니다.

답변

0

GridView를 수동으로 바인드 할 수 있으며 논리를 바인딩 프로 시저에 삽입하여 해당 프로 시저를 종료 할 수 있습니다.

이렇게하려면 GridView의 onDataBinding 이벤트를 구독하십시오.

수동 여기의 GridView 바인딩에 대한 자세한 내용을보실 수 있습니다 : http://www.aarongoldenthal.com/post/2009/04/19/Manually-Databinding-a-GridView.aspx

+0

"로직 삽입 ... 해당 절차 종료"를 상세히 작성하십시오. DataBind를 중지하고 DB 연결을 닫은 다음 DB에 대한 쿼리를 종료하고 싶습니다. – Steven

+0

이것은 SQLDataSource의 SelectCommand를 사용하여 GridView를 자동으로 채우는 대신에 GridView를 채우기위한 자신 만의 로직을 작성할 수 있다는 것을 의미합니다. 그래서 귀하의 등록을 귀하의 GridView에 대한 귀하의 데이터베이스를 쿼리하고 GridView에 값을 삽입 시작 귀하의 등록기 onDataBinding 호출됩니다. 휠을 실제로 다시 발명했기 때문에 이것은 상당한 양의 작업이지만 원할 때마다 프로세스를 중단하고 연결을 닫은 다음 사용자에게 피드백을 제공 할 수 있습니다. 그게 도움이 되나요? –

+0

어떻게 연결을 닫으시겠습니까? 나는 그 방법을 찾을 수 없습니다. – Steven

1

어떻게 다른 방향에서 문제 해결에 대한. 조인과 하위 쿼리를 변경하거나 단순히 페이지의 다른 입력을 기반으로 데이터를 줄임으로써 쿼리 최적화를 살펴 보았습니까?

0

나는이 시나리오에서 페이징을 제안 하겠지만 나는 Dave와 동의한다. 여러 가지 변형이 있지만 첫 번째 방법은 한 번에 특정 숫자로 끌어 오는 행의 수를 제한하는 것입니다. 연결을 시도한 다음 시간 내에 응답하지 않으면 애플리케이션 사용자를 좌절시킬 것입니다.

시작하는 데 도움이되는 게시물이 하나 있습니다.

smart paging with datagrid

0

상황이 {} 블록 슈트를 사용. 블록을 사용하여 연결을 사용하십시오.

-1

Connection을 닫고 모든 자원을 확보하십시오.

myConn.Close(); 
myConn.Dispose(); 
+0

실제로 질문을 읽었습니까? – Filburt