Click here to Skip to main content
15,896,118 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I facing Problem on pass the Parameter on WHERE Clause IN On VB.NET site
I have a Function below:

VB
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


I like to get list Project Detail as in MSSQL Query as below:
SQL
SELECT * FROM Project WHERE ProjectID IN ('PFP','PSB','PSK')


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
Posted

1 solution

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')


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

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900