Đây là một giải pháp không có for
nhưng không may là không có câu lệnh SQL được tham số hóa:
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);
}
}
Xin lưu ý rằng sử dụng select *
được coi là một thực hành xấu
chỉnh sửa Đây là một số mã mới vì danh sách của bạn thuộc loại System.Web.UI.MobileControls.List
string sql = String.Format("SELECT * FROM Table WHERE ID IN ({0})",
listColumns.ListItem.Value);
chỉnh sửa 2 Tôi đã lấy mã từ nhận xét của bạn:
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);
Tôi đoán rằng bạn có cái này trên menu thả xuống đã thay đổi sự kiện hay gì đó? và danh sách thả xuống của bạn có một chuỗi như "1,5,6,9" trong giá trị. Nếu tất cả các giả định của tôi là đúng, bạn có thể sử dụng:
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);