Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.NET中编写多个数据集?_Vb.net_Dataset - Fatal编程技术网

如何在VB.NET中编写多个数据集?

如何在VB.NET中编写多个数据集?,vb.net,dataset,Vb.net,Dataset,我有一份报告,需要相同的数据,但有四个不同的日期范围。目前这个数据是基于一个月,所以它只是一个数据集。但现在我尝试用四个独立的数据集来实现这一点,其中每个数据集都在四个日期范围中进行过滤。我设置我的WHILE循环来循环所有四个日期。但我现在很难对这些数据集进行清晰的命名。这是最好的方法吗?看起来,如果我对一个数据集使用多个datatables,那么我必须定义每个datatable列。以下是我当前的数据集命令字符串: commandstring = "SELECT Batch_Records.Pa

我有一份报告,需要相同的数据,但有四个不同的日期范围。目前这个数据是基于一个月,所以它只是一个数据集。但现在我尝试用四个独立的数据集来实现这一点,其中每个数据集都在四个日期范围中进行过滤。我设置我的WHILE循环来循环所有四个日期。但我现在很难对这些数据集进行清晰的命名。这是最好的方法吗?看起来,如果我对一个数据集使用多个datatables,那么我必须定义每个datatable列。以下是我当前的数据集命令字符串:

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") & "')"
commandstring=“选择批次记录、零件号、批次记录、批次号、批次记录、接收日期,”_
“IsNull([完成日期],[审核日期])作为完成日期,批次记录。错误,”_
“Batch_Records.[Group],Batch_Records.MFG,Batch_Records.MFG2,Batch_Records.QC,Batch_Records.QC2,”_
“质量控制代码。代码描述”和_
“从EXCEL.Batch\u记录左连接EXCEL.QC\u代码到Batch\u记录。零件号=QC\u代码。代码\u 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个范围:

扩展WHERE(并注意括号…)

“WHERE(批处理记录。[组]”&TheGroup&
“和(Batch_Records.Date_Received>”&arrWeekYear(i1,j)。ToString(“d”)和“Batch_Records.Date_Received>”&arrWeekYear(i1+7,j)。ToString(“d”)&
)或(Batch_Records.Date_Received>“&arrWeekYear(i2,j)。ToString(“d”)和Batch_Records.Date_Received>”&arrWeekYear(i2+7,j)。ToString(“d”)&
)或(Batch_Records.Date_Received>“&arrWeekYear(i3,j).ToString(“d”)和Batch_Records.Date_Received>”&arrWeekYear(i3+7,j).ToString(“d”)&
)或(Batch_Records.Date_Received>“&arrWeekYear(i4,j).ToString(“d”)和Batch_Records.Date_Received>”&arrWeekYear(i4+7,j).ToString(“d”)&
"'))"

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

为什么不能对您感兴趣的四个日期范围执行四个不同的查询,根据需要对开始日期和结束日期进行参数化?同意Matt的意见。参数化开始和结束日期并创建存储过程。并将4
DataTable
s中的信息保存在一个
DataSet
中。
"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") &
"'))"