【发布时间】:2016-01-25 23:40:18
【问题描述】:
您能否更正这个 sqlserver 查询:
select * from messages where @DepartID In(MsgTo)
@DepartID 是一个包含部门 ID 的会话变量。 MsgTo 是消息表中的一列,其中包含值列表,例如。 : '12','10','13','25' ..等等
我使用了这个代码:
cmd.CommandText = "select * from messages where @DepartID IN(MsgTo)"
cmd.Parameters.AddWithValue("@DepartID ", session("DepartID")) ' = 12 for example
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable
da.Fill(dt)
lbmsg.text = dt.Rows.Count.ToString ' returns 0 rows
对不起我的英语不好
【问题讨论】:
-
这是一个乐观编码的例子。您希望 SQL Server 会碰巧注意到您的表中的一列看起来可能包含一个值列表,并使用其令人难以置信的 Insight Engine 解码该列表并直觉您的意图。不会发生。您需要获取信息高速公路上可用的常用函数之一,该函数将逗号分隔的列表分隔为值表,将字符串转换为整数,然后在查询中使用它。
-
你是对的@HABO,我认为他们应该围绕它工作。我同意功能,我认为这是唯一的方法... thx
标签: sql asp.net sql-server-2008 tsql