<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>
J'ai un SQLDataSource avec la commande de sélection ci-dessus et le code ci-dessous pour définir la valeur HiddenFieldASP.net: Variable SQLDataSource et 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
Je se moquant de la session avec ('P2' , '7T') qui va passer dans la commande sql ci-dessus. quand je lance la requête:
select * from AccountCancellation_Process where store_num in (select distinct storeno from franchisedata where initials in ('P2','7T'))
il renvoie des données, mais dans ma SQLDataSource commande select. Il ne retourne rien. ma conjecture est à cause des initiales dans (@DualInitials) le() qui est déjà dans le champ caché mais si je supprime le() et ai juste @DualInitials. J'obtiendrai "Syntaxe incorrecte près de '@DualInitials'."
Est-ce que quelqu'un sait une solution de contournement ou où je me trompe?
Une raison particulière pour laquelle je suis ici -1? L'instruction IN traite le paramètre en tant que chaîne et non en tant que séquence. J'ai donné une solution au problème de Jack. wtf? – Ruslan