停止直到代码运行

时间:2011-05-10 18:55:39

标签: vb.net

所以我从数据库中提取数据,然后计算该数据库上的所有数据,但在数据被提取之前计数。无论如何要阻止这个?

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

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

    MsgBox(counter)

喝彩!

1 个答案:

答案 0 :(得分:3)

计算数据源而不是数据网格中的项目。数据网格绑定将异步发生,并且不准确。例如,如果您的数据源是数据表,那么您可以:

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

编辑:要计算SQL数据源中的行,您必须处理“已选择”事件。创建一个名为myRowCount的类级变量,在选定的事件中设置它并在bind语句之后使用它:

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。