<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 с выше выбором команды и кодом ниже, чтобы установить значение скрытогоASP.net: SqlDataSource и Session переменной
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 ».
Кто-нибудь знает обходное решение или где я ошибаюсь?
какой-либо конкретной причины, почему я получил -1 здесь? Оператор IN обрабатывает параметр как строку, а не последовательность. Я дал решение проблемы Джека. WTF? – Ruslan