从c#.net中列表框中的多个选定项构建查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从c#.net中列表框中的多个选定项构建查询相关的知识,希望对你有一定的参考价值。

我想将多个选定的项目从一个列表框传输到另一个列表框,然后发送查询以显示列表框2的选定项目中的数据库。这意味着使用where子句显示表格,where条件是列表中选定的项目方框2。

protected void Button1_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrEmpty(TextBox1.Text))
    {
        ListBox2.Items.Add(TextBox1.Text);
        TextBox1.Text = "";
    }
    else
    {
        if (ListBox1.SelectedIndex >= 0)
        {
            for (int i = 0; i < ListBox1.Items.Count; i++)
            {
                if (ListBox1.Items[i].Selected)
                {
                    if (!arraylist1.Contains(ListBox1.Items[i]))
                    {
                        arraylist1.Add(ListBox1.Items[i]);
                    }
                }
            }
            for (int i = 0; i < arraylist1.Count; i++)
            {
                if (!ListBox2.Items.Contains(((ListItem)arraylist1[i])))
                {
                    ListBox2.Items.Add(((ListItem)arraylist1[i]));

                }
                ListBox1.Items.Remove(((ListItem)arraylist1[i]));
            }
            ListBox2.SelectedIndex = -1;

        }
        else
        {

        }
    }
}

protected void Button2_Click(object sender, EventArgs e)
{
    if(ListBox2.SelectedIndex >= 0)
    {
        for(int i = 0;i < ListBox2.Items.Count; i++)
        {
            if(ListBox2.Items[i].Selected)
            {
                if(!arraylist2.Contains(ListBox2.Items[i]))
                {
                    arraylist2.Add(ListBox2.Items[i]);
                }
            }
        }
        for(int i = 0;i < arraylist2.Count; i++)
        {
            if(!ListBox2.Items.Contains(((ListItem)arraylist2[i])))
            {
                ListBox1.Items.Add(((ListItem)arraylist2[i]));
            }
            ListBox2.Items.Remove(((ListItem)arraylist2[i]));
        }
        ListBox1.SelectedIndex = -1;
    }
    else
    {

    }
}

我写这个是从一个列表框转移到另一个列表框。但是我如何使用where子句编写查询以显示数据,并从列表框中获取where子句的条件2.Kindly help。

答案

根据您的查询,您可以添加代码以使用Button2_Click函数末尾的where子句检索数据,

使用Ado.net添加Sql连接,或者使用什么框架进行数据库连接执行查询,我已经添加到数据库并从中获取结果。

现在从这些结果中你可以绑定新的列表框(我想你知道如何绑定查询中的检索结果,因为你已经绑定了列表框)

protected void Button2_Click(object sender, EventArgs e)
{
    if(ListBox2.SelectedIndex >= 0)
    {
        for(int i = 0;i < ListBox2.Items.Count; i++)
        {
            if(ListBox2.Items[i].Selected)
            {
                if(!arraylist2.Contains(ListBox2.Items[i]))
                {
                    arraylist2.Add(ListBox2.Items[i]);
                }
            }
        }
        for(int i = 0;i < arraylist2.Count; i++)
        {
            if(!ListBox2.Items.Contains(((ListItem)arraylist2[i])))
            {
                ListBox1.Items.Add(((ListItem)arraylist2[i]));
            }
            ListBox2.Items.Remove(((ListItem)arraylist2[i]));
        }
        ListBox1.SelectedIndex = -1;

    // Construct the query with where clause
    string whareClause = string.Join("','", arraylist2.Select(e=>e.Value));
    string query = "select * from ListBox2 where items in ('"+ whareClause + "')";

    // Call your db using Ade.net
    // Bind your result to new list box

    }
    else
    {

    }
}

以上是关于从c#.net中列表框中的多个选定项构建查询的主要内容,如果未能解决你的问题,请参考以下文章

如何根据列表框中的选定行填充多个文本框

如何使用 jquery 从 asp.net 列表框中仅获取当前选定的选项

如何使用 jQuery 从文本框中的列表中显示选定的选项?

保存列表框中的选定项目以供其他类使用

从 Access 中的列表框中提取选定的行

如何在列表框中显示多个字典项