Click here to Skip to main content
12,503,572 members (53,782 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: VB VB.NET
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

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 VB.net Site
Posted 11-Nov-12 17:01pm
pthsoon658

1 solution

Rate this: bad
 
good
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
... 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.
  Permalink  

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 | Mobile
Web02 | 2.8.160919.1 | Last Updated 11 Nov 2012
Copyright © CodeProject, 1999-2016
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