2011-05-10 3 views
1

그래서 데이터베이스에서 데이터를 가져 와서 해당 데이터베이스의 모든 데이터를 계산하지만 데이터를 가져 오기 전에 계산됩니다. 어쨌든 이걸 막으라고?코드가 실행될 때까지 중지

test.SelectCommand = Ssql 
    test.SelectParameters.Clear() 
    test.DataBind() 

    System.Threading.Thread.Sleep(1000) 
    counter = OSG.Items.Count 

    MsgBox(counter) 

건배!

+0

여기서 'OSG'는 무엇입니까? '시험 '이란 무엇입니까? – David

+0

osg datagrid, 테스트는 데이터 소스 – Sam

답변

3

DataGrid의 항목이 아니라 데이터 소스를 센다. DataGrid 바인딩은 비동기 적으로 발생하며 정확하지 않습니다. 예를 들어 데이터 소스는 데이터 테이블 인 경우 다음을 수행 할 수 있습니다

Dim x As DataTable = New DataTable 
Dim counter As Integer 
counter = x.Rows.Count 

편집 : 당신이 '선택'이벤트를 처리 할 가지고 SQL 데이터 소스의 행을 계산합니다. , myRowCount라는 클래스 수준 변수를 확인 선택한 이벤트에 설정하고 바인드 문 후 사용 :

Dim myRowCount As Integer 
Protected SubSqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected 
    MsgBox(e.AffectedRows()) 
    myRowCount = e.AffectedRows() 
End Sub 

는 그런 다음 코드의 다른 myRowCount를 사용할 수 있습니다.

+0

입니다. '행'은 'System.Web.UI.WebControls.SqlDataSource'의 멤버가 아닙니다. 내가 그걸 시도 할 때? – Sam

+0

@Sam이 (가)이 작품을 당신을 위해 만들었습니까? – nbushnell

관련 문제