0

我正在尝试在我的 asp.net/vb.net 网站中使用数据集适配器。但是我需要使用多个值进行搜索,理想情况下,我只想将 in 语句传递给我的数据集适配器。这可能吗,就这样,它似乎没有带回任何东西:

这是我的数据适配器:

在此处输入图像描述

查询是:

select * from joblist where username in (@username)

我试图用以下方式调用它:

Private dtJobs As Barry.joblistDataTable
Private taJobs As New BarryTableAdapters.joblistTableAdapter

  dtJobs = New Barry.joblistDataTable
  dtJobs = taJobs.FilterSearch("'tomb','martinm','chrise'")

rptJobList.DataSource = dtJobs
rptJobList.DataBind()

我究竟做错了什么?

4

1 回答 1

1

你传入一个逗号分隔的字符串,一个参数。您不能在IN语句中按原样使用它。

您必须将其拆分为表格,例如使用此解决方案。使用此函数(我假设您使用 SQL Server 作为数据库),您可以将查询重写为:

select joblist.* from joblist 
inner join dbo.Split(',', @username) t
on joblist.username = t.s

这种方法将您的多值参数拆分为表并连接到原始表

于 2013-08-20T13:55:28.437 回答