如何在子句IN处传递参数? [英] How to Pass Parameter Where Clause IN?

查看:74
本文介绍了如何在子句IN处传递参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在VB.NET网站上传递WHERE子句中的参数时遇到问题
我在下面有一个函数:

I facing Problem on pass the Parameter on WHERE Clause IN On VB.NET site
I have a Function below:

Public Function getProjectDS(ByVal ProjectID As String) As DataSet

Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "SELECT * FROM Project WHERE ProjectID IN (@ProjectID)"
cmd.Parameters.Add("@ProjectID", SqlDbType.VarChar).Value = ProjectID

Dim ds As New DataSet
Dim da As New SqlDataAdapter(cmd)

da.Fill(ds)

Return ds

End Function



我喜欢在MSSQL Query中获得如下列表Project Detail:



I like to get list Project Detail as in MSSQL Query as below:

SELECT * FROM Project WHERE ProjectID IN ('PFP','PSB','PSK')



如果我使用Function getProject("PFP,PSK,PSB")
,则无法获得与MSSQL Query相同的结果. 一无所获.
但是,如果我使用Function getProject("PFP"),它只会让我在ProjectID PFP详细信息上进行项目.


我需要帮助在VB.net上的WHERE CLAUSE中传递参数.Site



I can not get same result as MSSQL Query if i use Function getProject("PFP,PSK,PSB")
just get nothing.
But if i use Function getProject("PFP") it only get me Project On ProjectID PFP Details.


I needed to help on Passing parameter ON WHERE CLAUSE IN On VB.net Site

推荐答案

您不能这样做.您实际发送到SQL Server的内容是这样的:
You can''t do that. What you actually sent to the SQL server was this:
SELECT * FROM Project WHERE ProjectID IN ("''PFP'', ''PSB'', ''PSK''")


您没有发送项目列表,而是发送了一个字符串.本质上与发送
相同


You didn''t send a list of items, you sent a single string. Essentially the same as sending

... WHERE ProjectID IN (''I SENT THIS SINGLE, STRING NOT A LIST'')



您不能在IN子句中直接将列表发送到SQL Server.阅读 [



You can''t directly send a list to SQL Server in the IN clause. Read this[^] for a possible alternate method.


这篇关于如何在子句IN处传递参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆