С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
116rus
6 / 6 / 6
Регистрация: 19.10.2013
Сообщений: 38
Завершенные тесты: 1
1

Поиск по нескольким полям таблицы

27.02.2015, 17:37. Просмотров 1453. Ответов 1
Метки нет (Все метки)

Добрый вечер.Мне нужно реализовать поиск данных из таблицы,на основе введенных данных в представлении.В зависимости от того ,если данные для поля не введены,поиск по нему производится не будет.Поиск сделал пока с помощью SQL запроса таблице напрямую.Подскажите пожалуйста,как можно сделать,чтобы генерировался LINQ запрос к таблицы в зависимости от условия?вот мои наработки

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  public ActionResult Search(int? idOtd, int? pay, string secondname = "", string surname = "",
                   string firstname = "")
        {
            var query = "";
            var dict = new Dictionary<string, string>
            {
                {"id_otd", idOtd.ToString()},
                {"pay", pay.ToString()},
                {"secondname", secondname},
                {"surname", surname},
                {"firstname", firstname}
            };
 
            foreach (var data in dict)
            {
                int intDigit;
                if (data.Value != "" || (data.Key == "pay" && Int32.TryParse(data.Value, out intDigit)))
                {
                    query += data.Key + " = " + "N'" + data.Value + "'" + " AND ";
                }
 
            }
 
            using (var data = new db_companyEntities())
            {
                if (query != "")
                {
                    var list =
                        data.tb_worker.SqlQuery("select * from tb_worker where " + query.Remove(query.Length - 4, 3))
                            .ToList();
                    return PartialView(list);
                }
                return (PartialView(data.tb_worker.ToList()));
            }
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2015, 17:37
Ответы с готовыми решениями:

Запрос Json по нескольким полям
получается в коде выполняется запрос только по полю Наме, как сделать так чтобы...

Поиск по нескольким таблицам
Добрый день, я начала разбираться с поиском и сделала простенький поиск по...

Как организовать поиск по полям из разных таблиц?
Есть база Access, в ней несколько таблиц объединенных полем ID (уникальный...

Recordset method Find. Поиск по нескольким условиям
Привет, All! Опять я с проблемой, не получается без нее приходить... Кто...

Поиск совпадений в поле таблицы БД
Кратко о вопросе. ДЛя того что бы преподаватель одобрил мой проект для...

1
Cyberatino2
55 / 55 / 22
Регистрация: 24.09.2013
Сообщений: 172
04.03.2015, 03:44 2
Привет.
Может, использовать EntityFramework, Linq2Sql?
Мне трудно понять по представленному коду, какую ты используешь ORM и используешь ли ты её вообще. В любом случае, существует длинная запись Linq-выражений, которая как раз и сцепляет одно условие с другим (наверно, поэтому Linq так называются; link - связка, ссылка).
C#
1
2
3
4
5
6
7
8
9
   var query = GetInitialQueryInDependenceOfOrm();
   if (id.HasValue) 
   {
      query.Where(q => q.Id == id);
   }
   if (pay.HasValue)
   {
      query.Where(q => q.Pay == pay);
   }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2015, 03:44

Join одной таблицы по нескольким полям другой таблицы
Здравствуйте! Интересует возможность следующего: Есть, например, такой...

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE...

Выбор по нескольким полям таблицы
Всем привет! Вот такая вот задача у меня... Есть таблица (cents) вот такого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru