我想要做的是基本上有一个对用户进行排名的列,所以如果有10个人,那么它会将销售额最高的人排名为10,将第二个最高的人排名为9,依此类推。并不总是10名员工
我正在使用存储过程和sqldatasource连接到我的存储过程。 要获取每个代理的所有数据,我使用
之类的函数 Dim TotalSales As Decimal = 0.0
Function GetTotalSales(ByVal Price As Decimal) As Decimal
TotalSales += Price
Return Price
End Function
Function GetTotal() As Decimal
Return TotalSales
End Function
Dim TotalCalls As Decimal = 0.0
Function GetCalls(ByVal calls As Decimal) As Decimal
TotalCalls += calls
Return calls
End Function
Function GetTotalCalls() As Decimal
Return TotalCalls
End Function
获得正在运行的总数
我可以做点什么吗Dim salesrank As Decimal = 0.0
Function Getsalesrank(ByVal salestorank As Decimal) As Decimal
Dim rank As New ArrayList
rank.Add(salestorank)
End Function
然后一些如何排序数组列表并打印代理销售总额的索引?
答案 0 :(得分:0)
由于你使用的是.Net 2.0,并且显然没有使用内置类来完成数据调用,我建议你从使用SQLDataSource切换到强类型的DataSet(.xsd文件)。您可以创建一个类型化的DataTable和TableAdapter,它们将执行您的初始查询并生成可以在您执行其他操作时保存所需数据的集合对象(表)。创建数据集后,您可以通过以下方式调用它:
Dim connectionObject as System.Data.SqlClient.SqlConnection = _
New System.Data.SqlClient.SqlConnection("Put your string here")
Dim myAdapter as MyStronglyTypedTableAdapter
Dim myTable as MyStronglyTypedTable
myAdapter.Connection = connectionObject
myTable = myAdapter.GetData()
如果您创建DataTable以使其包含一个名为TotalSales
的空列(我假设数据表中包含用户索引的数据),则可以使用总销售方法填充该列。一旦用户按表组织了表,就可以使用表的DefaultView对GridView进行排序和绑定:
Dim myView as DataView = myTable.DefaultView
myView.Sort = "TotalSales ASC"
myGridView.DataSource = myView
myGridView.DataBind()
完成此操作后,您可以操作GridView的其中一列以显示数字排名。这将在RowDataBound
事件中完成。