выберите в таблице, где список <int> - PullRequest
0 голосов
/ 06 июля 2011

Есть таблица с полем возраста и именем

следующие данные

jack 15
sara 14
mishel 13
sufia 19
green 22
blue 56

У нас есть презентация со следующими членами

list<int> age = new list<int>(); 
age.add(15);
 age .add(14);
 age .add(19);

Как выполнить поиск в базе данных, указав

Ниже приведены выбранные данные из таблицы

jack 15
sara 14
sufia 19

Ответы [ 3 ]

5 голосов
/ 06 июля 2011

Построение SQL-запроса программно с помощью предложения IN:

string sql = @"
    SELECT *
      FROM [PeopleTable]
     WHERE [Age] IN (" + age.Join(", ") + ")";

Результат:

SELECT *
  FROM [PeopleTable]
 WHERE [Age] IN (15, 14, 19)
1 голос
/ 06 июля 2011

Если вы используете MSSQL, вы можете создать тип таблицы, в котором один столбец будет иметь возраст.

0 голосов
/ 06 июля 2011

Если вы используете LINQ to SQL, вы должны создать этот запрос:

var query = from record in table
            where ages.Contains(record.age)
            select record;
query.ToList();

Если вы хотите использовать SP, тогда вы должны динамически создать предложение where:

string whereClause = string.Empty;
foreach (int age in ages)
{
    whereClause += age + ", ";
}
whereClause = whereClause.SubString(query, query.Length - 2) // Removing the last comma;
string query = string.Format ("select * from tableName where age in ({0})", whereClause);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...