【问题标题】:Questions about performance for Merging Data-Set in vb.net关于在 vb.net 中合并数据集的性能问题
【发布时间】:2013-10-24 07:47:03
【问题描述】:

ASP.NET 1.1 / VB.NET / SQL 2000

我正在使用水晶报表 10 生成报表...报表工作正常,但问题是加载和显示数据花费的时间太长。

我正在做的是: 我有两张桌子(一对多)。我从第一个表中获取所有记录并将其存储在我的数据集中的一个表中......然后我从第二个表中获取所有记录,具体取决于第一个表中的 ID。然后将其存储在 dataset 中的另一个表中。

之后,我通过执行每个循环将每条记录合并到其相关 id 来合并数据集中的两个表。

最后将其绑定到报表上

合并过程需要 2 分钟!!

.

  • 我能做什么?
  • 有没有更好的方法来做同样的事情?
  • 能否控制 SQL 语句中的记录范围?

重要

我不能放我的代码,因为那里有很多代码,这真的让所有人感到困惑。

【问题讨论】:

  • 为什么不直接创建一个DataRelation 对象?
  • @Steve,1.1 框架是否支持?我正在使用 1.1 框架
  • DataRelation 类从一开始就存在。所以它是支持的,但是,我不确定你的报告。如果它期望所有内容都在一个平面表中,那么您可能需要重写它以利用数据集中构建的关系。抱歉,我不是 Crystal Reports 专家。
  • 没关系!但我会考虑你的意见,谢谢@Steve

标签: asp.net vb.net dataset sql-server-2000 .net-1.1


【解决方案1】:

很遗憾,您没有提供太多信息,但让我给您一些代码示例,您应该能够根据自己的目的进行修改。

Dim SQL1 As String = "SELECT Field1, Field2 FROM Table1 where Field2 = 7" 'Standard SQL
Dim SQL2 As String = "SELECT Field3, Field4, Field1 FROM Table2 Where Field1 in (SELECT Field1 FROM Table1 where Field2 = 7)" 'This SQL contains a nested select to get the child data for only the records that match the parent
'A neat feature, combine them into 1 SQL statement that will produce 2 tables in your dataset in one call
Dim SQL3 As String = SQL1 & ";" & SQL2
Dim CN As New SqlClient.SqlConnection("Your connection string here")
Dim DS As New DataSet
Dim DA As New SqlClient.SqlDataAdapter(SQL3, CN)
CN.Open()
DA.Fill(DS)
CN.Close()

请参阅代码中的注释以了解正在发生的事情。根据您的 VB.net、Sql Server 和 Net1.1 的 TAG,这应该都适合您。

【讨论】:

    猜你喜欢
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2012-09-20
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多