通过转换为DataView从SqlDataSource检索行计数

时间:2013-03-22 22:08:50

标签: asp.net listview sqldatasource dataview rowcount

从SqlDataSource检索Total Row Count时遇到了一些困难。我使用SqlDataSource中的SELECT语句的结果来创建ListView,但是生成了一些代码,这些代码可以让我轻松获得Total Row Count。我不会展示我使用的所有不同代码,但会向您展示简单的解决方案。

2 个答案:

答案 0 :(得分:1)

假设我有一个名为'dsResults'的SqlDataSource,它选择数据库表中的某些记录。下面的代码通过DataView从该SqlDataSource检索总行数,让您在Label中显示它或在CASE语句中使用它(在Page_Load中执行):

Dim dssa As New DataSourceSelectArguments()
  dssa.AddSupportedCapabilities(DataSourceCapabilities.RetrieveTotalRowCount)
  dssa.RetrieveTotalRowCount = True
Dim dv As DataView = DirectCast(dsResults.[Select](dssa), DataView)
LabelRows.text = dv.Table.Rows.Count

Select Case dv.Table.Rows.Count
  Case 0
    panelResults.Visible = False
End Select

答案 1 :(得分:1)

如果您将SqlDataSource绑定到ListView,为什么不简单地从ListView获取计数?

LabelRows.Text = ListView1.Items.Count