sql >> Database >  >> RDS >> Sqlserver

Selecteer Query met Where-voorwaarde afhankelijk van lijstwaarden in asp.net

Hier is een oplossing zonder een for loop, maar helaas ook zonder een geparametriseerd SQL-statement:

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);
  }
}

Houd er rekening mee dat het gebruik van select * wordt beschouwd als een slechte gewoonte

bewerken Hier is wat nieuwe code omdat uw lijst van het type System.Web.UI.MobileControls.List is

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

bewerk 2 Ik heb de code uit je opmerking overgenomen:

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);

Ik neem aan dat je dit in de vervolgkeuzelijst hebt gewijzigd evenement of zoiets? en je vervolgkeuzelijst heeft een tekenreeks als "1,5,6,9" in de waarde. Als al mijn aannames correct zijn, kun je gebruiken:

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. Dwing gebruikers om de nieuwste versie van de Android-app te hebben

  2. Genereer een datumbereik met SQL

  3. Android SQLite-database en app-update

  4. MySQL converteren naar MS Access