यहां 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);