我在GTIDArr
Letus说GTID={"CODE1","CODE2","CODE3"}
我想从以下具有GTID的查询中获取数据库中的记录。
因此我做了以下事情:
Dim sqlTransferExcel As String = " select gt.GTID ,gt.TransferDate ,pl.LocationName as FromLocation,Pto.LocationName as ToLocation,gt.TransferedMode ,gt.TransferedDetails ,gt.Remarks ,p.ProductName+case when c.CategoryName IS null then '' else '-'+c.CategoryName end as PName,gd.QtyTransferred " _
& " from dbo.GoodTransferDetails gd Left outer join ProductMaster p on gd.ProductID =p.ProductID " _
& " Left Outer join CategoryMaster c on gd.CategoryID =c.CategoryID " _
& " Left Outer join dbo.GoodTransfer gt on gt.GTID=gd.GTID " _
& " Left Outer join PescaLocation pl on gt.FromPescaLocation =pl.PLID " _
& " Left Outer join PescaLocation Pto on gt.ToPescaLocation =pto.PLID " _
& " where gd.GTID in ( '" & GTIDArr() & "' ) order by p.OrderID "
但它给出了我在条件为
的最后一行的错误错误101索引数小于维数
索引
如何在此查询中包含字符串数组?
答案 0 :(得分:2)
例如,您可以使用Join
中的String
方法:
String.Join(", ", GTIDArr)
如果您需要引用数组中的每个元素,请尝试:
"'" & String.Join("', '", GTIDArr) & "'"
答案 1 :(得分:1)
哟可以使用LINQ
来做到这一点string Command= string.Empty;
Command= string.Join(",", ArrayListName.Cast<string>().Select(x => x.ToString()).ToArray()); // If it is INT Type
Command= string.Join("','", ArrayListName.Cast<string>().Select(x => x.ToString()).ToArray()); // If it is String
希望这会对你有所帮助。
答案 2 :(得分:1)
你不能直接使用数组&amp;在这个sql语句中使用&amp;在你的数组中,所以你首先必须转换为字符串,然后你必须使用.see下面的代码,你很容易找到解决方案:
Dim GTIDArr As String() = {"CODE1", "CODE2", "CODE3"}
Dim value As String = String.Join(",", GTIDArr)
Dim sqlTransferExcel As String = " select gt.GTID ,gt.TransferDate ,pl.LocationName as FromLocation,Pto.LocationName as ToLocation,gt.TransferedMode ,gt.TransferedDetails ,gt.Remarks ,p.ProductName+case when c.CategoryName IS null then '' else '-'+c.CategoryName end as PName,gd.QtyTransferred " _
& " from dbo.GoodTransferDetails gd Left outer join ProductMaster p on gd.ProductID =p.ProductID " _
& " Left Outer join CategoryMaster c on gd.CategoryID =c.CategoryID " _
& " Left Outer join dbo.GoodTransfer gt on gt.GTID=gd.GTID " _
& " Left Outer join PescaLocation pl on gt.FromPescaLocation =pl.PLID " _
& " Left Outer join PescaLocation Pto on gt.ToPescaLocation =pto.PLID " _
& " where gd.GTID in ( '" & value & "' ) order by p.OrderID "