Click here to Skip to main content
13,146,739 members (84,006 online)
Rate this:
Please Sign up or sign in to vote.
See more:
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)
Return ds
End Function

I like to get list Project Detail as in MSSQL Query as below:
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 Site
Posted 11-Nov-12 17:01pm

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

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

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

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

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web02 | 2.8.170915.1 | Last Updated 11 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100