ListBox 的多个选定值作为 SELECT SQL 查询的参数

发布于 2024-08-24 03:07:23 字数 87 浏览 6 评论 0原文

我想将 ListBox 中的多个选定值作为参数传递给我的 Select SQL 查询。

我正在使用 VB.NET,我怎样才能实现这个目标?...

I want to pass the Multiple selected values from ListBox as parameters to my Select SQL Query.

I am using VB.NET, how can I achieve this ?...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酷炫老祖宗 2024-08-31 03:07:23

最好的开始方法可能是迭代列表框并仅获取选定的项目。假设您使用 Web 表单,下面是一个示例:

For Each myItem As ListItem In myListBox.Items
    If myItem.Selected Then
        'Add the item to the list of parameters
    End If
Next

Probably the best way to start is to iterate through the listbox and get only the items that are selected. Assuming you are using Web forms, here is an example:

For Each myItem As ListItem In myListBox.Items
    If myItem.Selected Then
        'Add the item to the list of parameters
    End If
Next
み格子的夏天 2024-08-31 03:07:23

通过迭代列表框项目来选择您的项目,并将它们添加到某种类型的集合中并传递它们。

For i = 0 To ListBox1.Items.Count - 1
   If ListBox1.Items(i).Selected Then
       ' Add to collection
   End If
Next

在这种情况下,将 SQL 语句包装在存储过程中可能是个好主意,因为它可以让您在发送参数的方式方面具有灵活性。

我见过的另一个技巧是,当人们根据选择具有不同数量的参数时,将选择附加到始终为真的条件,例如:

Base SQL = Select * From MyTable where 1=1

然后基于列表项(集合),你可以选择性地“ADD”Ands

Select your items by iterating through the list boxes items and add them to a collection of some sort and pass them on.

For i = 0 To ListBox1.Items.Count - 1
   If ListBox1.Items(i).Selected Then
       ' Add to collection
   End If
Next

In situations like this, it might be a good idea to wrap your SQL statement in a stored procedure as it will give you flexibility in terms of how you send your parameters.

Another trick I have seen used is, when people have a varying amount of parameters based on selections is to append the selections against an always true condition like:

Base SQL = Select * From MyTable where 1=1

Then based on the list items(collection), you can selectively "ADD" Ands

千柳 2024-08-31 03:07:23

将选择模式设置为 SelectionMode.MultiExtended 或 SelectionMode.MultiSimple。
使用 SelectedItems 属性。

更新

我不知道你的选择语句是什么,所以用C#(抱歉没有VB)

string sql = "select [columns] from [table] where [column] in (";
string delimiter = ",";
foreach(var selected in lb1.SelectedItems)
{
  sql = String.Concat(sql, selected.text, delimiter);
}
sql = sql.Substring(0, sql.Length-1);
sql = String.Concat(sql, @");");

Set the selection mode to SelectionMode.MultiExtended or SelectionMode.MultiSimple.
Consume the SelectedItems property.

UPDATE

I dont know what your select statement is, so in C# (sorry no VB)

string sql = "select [columns] from [table] where [column] in (";
string delimiter = ",";
foreach(var selected in lb1.SelectedItems)
{
  sql = String.Concat(sql, selected.text, delimiter);
}
sql = sql.Substring(0, sql.Length-1);
sql = String.Concat(sql, @");");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文