【发布时间】:2015-03-06 21:34:01
【问题描述】:
我要做的是从列表框中选择多个国家,然后点击选择,然后网格视图会根据所选国家从表格中提取数据。我的问题是我不知道如何将字符串 where country in (A,B,C,...) 传递给 SQL Server 存储过程。任何关于这方面的建议都会很棒!
我的列表框是
<asp:ListBox ID="Country" cssclass="LBox" runat="server" SelectionMode="Multiple">
<asp:ListItem Text="A" Value="A" />
<asp:ListItem Text="B" Value="B" />
<asp:ListItem Text="C" Value="C" />
<asp:ListItem Text="D" Value="D" />
..............
</asp:ListBox>
我的选择按钮是
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim li As ListItem
Dim myString As String = ""
Dim myString2 As String = ""
For Each li In ListBoxComp.Items
If li.Selected = True Then
If myString = "" Then
myString = "'" & li.Text & "'"
Else
myString = myString & ", " & "'" & li.Text & "'"
End If
End If
Next
myString2 = myString2
Session("Selected") = myString2
我的网格视图是
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" BackColor="White"
BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px"
CellPadding="3" DataSourceID="SqlDataSource1" ForeColor="Black"
GridLines="Vertical">
......
</asp:GridView>
数据源是
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="usp_select" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:SessionParameter Name="myString2" SessionField="Selected" />
</SelectParameters>
</asp:SqlDataSource>
SQL Server 存储过程是
ALTER PROCEDURE [dbo].[usp_select]
@myString2 varchar(5000)
AS
BEGIN
SELECT *
FROM dbo.table
WHERE country IN (@myString2)
END
我的问题是我不知道如何将字符串 where country in (A,B,C,...) 传递到 SQL Server 存储过程。任何关于这方面的建议都会很棒!
【问题讨论】:
标签: asp.net sql-server vb.net gridview listbox