谁能讲讲关于DateSet.Select的用法,谢谢!

mkb21 2008-05-26 10:55:50
在WinForm中,已将数据库中的表通过DataAdapter.Fill方法填充到缓存的数据集中,现在我想对数据集中的表进行查询,求和等运算,可能是用DataSet.Table("MyTableName").Select("条件",????)后面的就不知道该怎么用了,请教指点,谢谢!
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenwu300692 2008-05-26
  • 打赏
  • 举报
回复
VS2008中有新方法:


dim DT as DataTable=System.Data.DataTableExtensions.CopyToDataTable(DT.Select("ID>20"))

CloneCenter 2008-05-26
  • 打赏
  • 举报
回复
后面的是条件和排序。
看看MSDN的帮助:http://msdn.microsoft.com/zh-cn/library/way3dy9w(VS.80).aspx
mkb21 2008-05-26
  • 打赏
  • 举报
回复
2楼的,你好,首先谢谢你给了我MSDN我网址,我似乎有些懂了,但还是不太明白,我需要对已填充的DataSet表中某个字段进行汇总求和,有些类似于SQL中:Select Sum(myField) From myTable一样,而按照MSDN中的解说做了后,其实际上是将原来的表生成一个新表,这个新表中有原表中符合条件的所有字段,还需要我自己再将新表中我需要的字段再做一次汇总(循环相加),这还不如我直接从SQL中汇总出来一个结果呢?请看如下代码:

Public Function mySum(ByVal TabName As String, ByVal Exps As String, ByVal Order As String) As Double
'TabName是已填充到缓存中的数据集
'Exps是设定的查询条件,比如:Month(Date)=5,Date是表TabName的一个字段,求5月份的数据
'Order是需要排序的字段Total,我原以为是得出结果的字段Sum(Total),这也是我想汇总的字段

Dim Tab As DataTable = DataSet.Tables(TabName)
Dim FoundRows() As DataRow
FoundRows = Tab.Select(Exps, Order)
For i As Integer = 0 To FoundRows.GetUpperBound(0)
MsgBox(FoundRows(i)(0)) '实际上我发现这个字段不是“Total”字段,而是“ID”字段
mySum = mySum + FoundRows(i)(1) '我不得不再将字段“Total”的记录进行循环相加,那样的话,还不如直接从SQL中取值呢。
Next i
End Function

我的问题是:可否像SQL那样对DataSet中的数据集TabName表进行某个字段的求和?
您可否再给个更好的解决方法,谢谢!

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧