【发布时间】:2009-03-18 17:18:00
【问题描述】:
<asp:HiddenField ID="hfDualInitials" runat="server" Visible="false" OnInit="hfDualInitials_OnInit" />
<asp:SqlDataSource ID="sdsStoreNo" runat="server" ConnectionString="<%$ ConnectionStrings:ConnStr %>"
SelectCommand="select * from AccountCancellation_Process
where store_num in (select distinct storeno from franchisedata where initials in (@DualInitials))
order by CustomerName ASC" >
<SelectParameters>
<asp:ControlParameter ControlID="hfDualInitials" DbType="String" Name="DualInitials" />
</SelectParameters>
</asp:SqlDataSource>
我有一个带有上述选择命令和以下代码的 Sqldatasource 来设置隐藏字段值
Protected Sub hfDualInitials_OnInit(ByVal sender As Object, ByVal e As EventArgs)
Dim _DualInitials As String = "('P2','7T')"
Session.Add("DualInitials", _DualInitials)
Me.hfDualInitials.Value = Session("DualInitials")
End Sub
我正在使用 ('P2','7T') 模拟会话,它将传递给上述 sql 命令。 当我运行查询时:
select * from AccountCancellation_Process where store_num in (select distinct storeno from franchisedata where initials in ('P2','7T'))
它返回一些数据,但在我的 Sqldatasource 选择命令中。它什么也不返回。我的猜测是因为(@DualInitials)中的首字母()已经在隐藏字段中,但是如果我删除()并且只有@DualInitials。我会得到“'@DualInitials' 附近的语法不正确。”
有没有人知道任何解决方法或我哪里弄错了?
【问题讨论】:
标签: asp.net