我正在尝试在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()
我做错了什么?
答案 0 :(得分:1)
您传入逗号分隔的字符串,即单个参数。您不能在IN
语句中使用它。
您必须将其拆分为表格,例如使用this solution。使用此功能(我假设您使用SQL Server作为数据库),您可以将查询重写为:
select joblist.* from joblist
inner join dbo.Split(',', @username) t
on joblist.username = t.s
此方法将多值参数拆分为表并连接到原始表