【发布时间】:2021-01-21 20:45:18
【问题描述】:
我有一个日期数组列表
2020 年 8 月 30 日 2020 年 8 月 27 日 2020 年 9 月 28 日 2020 年 9 月 9 日 2020 年 8 月 31 日 2020 年 8 月 29 日
然后我有一个带有 in 子句的日期查询
allQuery = "Select pj.ProjectName, tcd.Date, sum(tcd.Executed), sum(tcd.Passed), sum(tcd.Passedbug), sum(tcd.Flaky), sum(tcd.Failed), sum(tcd.Newfailures) "
allQuery &= "From qastats.dbo.TestCaseDetails tcd inner Join qastats.dbo.Pipelines p on tcd.PipelineID=p.PipelineID inner Join qastats.dbo.Projects pj on p.ProjectID=pj.ProjectID "
allQuery &= "where pj.ProjectName =@projectname "
allQuery &= "And tcd.Date in (@dates) group by pj.ProjectName, tcd.Date"
我想把Array列表中的日期列表放到这个格式(和String.Join一样)
8/30/2020,8/27/2020,9/28/2020,9/9/2020,8/31/2020,8/29/2020
所以我可以将它们作为参数的值传入
comm.Parameters.Add("@dates", SqlDbType.DateTime).Value = ListofDates
有没有办法按照我想要的方式或更好的方式来做?
谢谢
【问题讨论】:
-
您不能将单个参数与单个值一起使用。您要么需要多个参数,要么需要一个 table-valued parameter。
-
对了,你真的有
ArrayList吗?如果是这样,不要。ArrayList类在 2005 年过时。如果合适,请使用数组,否则使用List(Of T)。 -
我的坏 jmcilchinney。是的,我使用的是
List (Of T) -
如果您更喜欢多参数选项,请勾选this。如果您使用的是内联 SQL,这很实用,但如果您使用的是存储过程,则需要表值参数。
-
表值参数正是我正在寻找的。现在像魅力一样工作!!!
标签: sql-server vb.net date arraylist