【问题标题】:How to code multiple datasets in VB.NET?如何在 VB.NET 中编写多个数据集?
【发布时间】:2011-07-13 13:32:36
【问题描述】:

我有一份报告,我需要相同的数据,但需要四个不同的日期范围。目前这个数据是基于一个月的,所以它只是一个数据集。但是现在我尝试使用四个单独的数据集来执行此操作,其中每个数据集都在四个日期范围中的每一个上进行过滤。我将我的 WHILE 循环设置为循环遍历所有四个日期。但是我现在在对这些数据集进行不同命名时遇到了麻烦。这是最好的方法吗?看起来如果我为一个数据集使用多个数据表,我必须定义每个数据表列。这是我当前的数据集命令字符串:

commandstring = "SELECT Batch_Records.Part_Number, Batch_Records.Lot_Number, Batch_Records.Date_Received, " & _
                                           "IsNull([Date_Completed], [Review_Date]) AS CompleteDate, Batch_Records.Error, " & _
                                           "Batch_Records.[Group], Batch_Records.MFG, Batch_Records.MFG2, Batch_Records.QC, Batch_Records.QC2, " & _
                                           "QC_CODES.CODE_DESC " & _
                                           "FROM EXCEL.Batch_Records LEFT JOIN EXCEL.QC_CODES ON Batch_Records.Part_Number = QC_CODES.CODE_ID " & _
                                           "WHERE (Batch_Records.[Group]" & TheGroup & " AND Batch_Records.Date_Received > '" & arrWeekYear(i, j).ToString("d") & "' AND Batch_Records.Date_Received < '" & arrWeekYear(i + 7, j).ToString("d") & "')"

【问题讨论】:

  • 为什么您不能针对您有兴趣根据需要参数化开始和结束日期的四个日期范围执行四个不同的查询?
  • 同意马特。参数化开始和结束日期并创建存储过程。并将 4 个DataTables 中的信息保存在一个DataSet 中。

标签: vb.net dataset


【解决方案1】:

如果我理解正确,您希望在一个查询中包含 4 个范围:

扩展 WHERE(并注意括号...)

"WHERE (Batch_Records.[Group]" & TheGroup & 
" AND (Batch_Records.Date_Received > '" & arrWeekYear(i1, j).ToString("d") & "' AND Batch_Records.Date_Received < '" & arrWeekYear(i1 + 7, j).ToString("d") &
") or (Batch_Records.Date_Received > '" & arrWeekYear(i2, j).ToString("d") & "' AND Batch_Records.Date_Received < '" & arrWeekYear(i2 + 7, j).ToString("d") &
") or (Batch_Records.Date_Received > '" & arrWeekYear(i3, j).ToString("d") & "' AND Batch_Records.Date_Received < '" & arrWeekYear(i3 + 7, j).ToString("d") &
") or (Batch_Records.Date_Received > '" & arrWeekYear(i4, j).ToString("d") & "' AND Batch_Records.Date_Received < '" & arrWeekYear(i4 + 7, j).ToString("d") &
"'))"

或者如果你想有 4 组输出,创建一个参数化查询。只更新参数值运行 4 次。因此,您没有命名问题,因为您只有 1 个查询。

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多