Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изберете Заявка с условие Where в зависимост от стойностите на списъка в asp.net

Ето решение без for цикъл, но за съжаление и без параметризиран SQL оператор:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;

public class test {
  public static void Main(string[] args)
  {
    //List<int> listColumns = new List<int>(){ 1, 5, 6, 9};
    System.Collections.Generic.List<int> listColumns = new System.Collections.Generic.List<int>(){ 1, 5, 6, 9};
    string s = String.Join(", ", listColumns.Select(x => x.ToString()));

    string sql = String.Format("SELECT * FROM Table WHERE ID IN ({0})", s);
    Console.WriteLine(sql);
  }
}

Моля, обърнете внимание, че като използвате select * се счита за лоша практика

редактиране Ето малко нов код, защото вашият списък е от тип System.Web.UI.MobileControls.List

string sql = String.Format("SELECT * FROM Table WHERE ID IN ({0})", 
                 listColumns.ListItem.Value);

редактиране 2 Взех кода от вашия коментар:

list.Items.Clear(); 
string values = DropDownList4.SelectedValue; 
string[] words = values.Split(','); 

foreach (string s in words) 
    if (s != "" && s != string.Empty && s != null)     
        list.Items.Add(s);

Предполагам, че имате това в падащото меню за променено събитие или нещо подобно? и вашето падащо меню има низ като "1,5,6,9" в стойността. Ако всички мои предположения са верни, можете да използвате:

System.Collections.Generic.List<int> selectedValues = new     System.Collections.Generic.List<int>();

foreach (string s in words)
    if (!String.IsNullOrWhiteSpace(s))
        selectedValues.Add(Convert.ToInt32(s));
string ids = String.Join(", ", selectedValues.Select(x => x.ToString()));
string sql = String.Format("SELECT * FROM Table WHERE ID IN ({0})", ids);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избройте всички колони за идентичност в база данни на SQL Server:sys.identity_columns

  2. SQL Server:Как мога да групирам стойности на множество редове в отделни колони?

  3. как да присвоите стойност на cte на променлива

  4. Неуспешно групово вмъкване Грешка при преобразуване на данни при групово зареждане (отрязване)

  5. SQL Server - намерете n-то срещане в низ