9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 730

Как несколько раз извлечь данные из базы по двум условиям?

09.11.2016, 22:50. Показов 1636. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
СЦЕНАРИЙ
1. Перейти в ПОИСКОВИК "https://yandex.ru"
2. Ввод ПОИСКОВОЙ ФРАЗЫ
3. Нажатие "ВВОД"

Далее с поисковой выдачей работает нижеприведённый код

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
 string id = textBox2.Text; // 
            
            foreach (DataRow row in table.Rows)
            {
                // ПЕРЕМЕННЫЕ
                var id1 = row["ID"].ToString().Equals(id); // "ID" из базы данных соответствует "id" из textBox2
                var nom13 = row["nom"].ToString() == (13).ToString();
                var nom14 = row["nom"].ToString() == (14).ToString();
                var url1 = row["url1"].ToString();
 
                if (id1 && nom14) // если "ID" из базы данных соответствует id из textBox2 И из поля "nom" для этого "ID" равно 14
                {
                    List<IWebElement> News = Browser.FindElements(By.CssSelector(url1)).ToList(); // считываем из поисковой выдачи все ссылки согласно CssSelector                   
                }                               
                    for (int i = 0; i < 1; i += 1)                 
                    {
                        if (id1 && nom13)
                        {
                            String s = News[i].Text;
                                if (s.Contains(url1)) // если текст СОДЕРЖИТ
                                {                                    
                                    News[i].SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Shift + OpenQA.Selenium.Keys.Return); // нажатие по ссылке сочетанием клавиш Control + Shift + Левая кнопка мыши
                                }
                        }
                    }
ВОПРОС
1. Как сделать чтобы значение для id1 && nom13 из поля url1 попало в s.Contains(url1)
см. скрин
Миниатюры
Как несколько раз извлечь данные из базы по двум условиям?  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2016, 22:50
Ответы с готовыми решениями:

Как извлечь данные из Excel в datagridview по двум характеристикам?
ИМЕЕТСЯ БД в Ексель ВОПРОС Извлечь из Ексель данные по двум параметрам по в три datagridview СЦЕНАРИЙ 1. Вносим...

Как извлечь данные из файла базы данных *.bd
как извлечь дание из бази даних *.bd на C#?

Как извлечь данные из поврежденной базы данных
Здравствуйте, уважаемые программисты, у меня сложилась критичная ситуация, на диске обмена есть база данных с заказами на выполнение...

7
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
09.11.2016, 23:32
zakaz_77, Попробуй так:
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
36
37
38
39
40
41
            string id = textBox2.Text; // 
 
            foreach (DataRow row in table.Rows)
            {
                // ПЕРЕМЕННЫЕ
                var id1 = row["ID"].ToString().Equals(id); // "ID" из базы данных соответствует "id" из textBox2
                var nom13 = row["nom"].ToString() == (13).ToString();
                var nom14 = row["nom"].ToString() == (14).ToString();
 
 
                if (id1 && nom14) // если "ID" из базы данных соответствует id из textBox2 И из поля "nom" для этого "ID" равно 14
                {
                    List<IWebElement> News = Browser.FindElements(By.CssSelector(url1)).ToList(); // считываем из поисковой выдачи все ссылки согласно CssSelector   
 
                    List<string> searchTexts = new List<string>();
                    foreach (DataRow row in table.Rows)
                        searchTexts.Add(row["url1"].ToString());
 
 
                }
                for (int i = 0; i < 1; i += 1)
                {
                    if (id1 && nom13)
                    {
                        String s = News[i].Text;
 
                        var contains = false;
                        foreach (var url in searchTexts)
                        {
                            if (s.Contains(url))
                            {
                                contains = true;
                                break;
                            }
                        }
                        if (contains) // если текст СОДЕРЖИТ
                        {
                            News[i].SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Shift + OpenQA.Selenium.Keys.Return); // нажатие по ссылке сочетанием клавиш Control + Shift + Левая кнопка мыши
                        }
                    }
                }
Добавлено через 23 минуты
zakaz_77, Стоп!
Видимо, не совсем Вас понял! А какая проблема в Вашем коде?
1
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 730
09.11.2016, 23:47  [ТС]
В строках 11-13 код из сообщения #1
C#
1
2
3
if (id1 && nom14) // если "ID" из базы данных соответствует id из textBox2 И из поля "nom" для этого "ID" равно 14
                {
                    List<IWebElement> News = Browser.FindElements(By.CssSelector(url1)).ToList();
всё выполняется замечательно и значение из базы, из столбца url1 попадает в CssSelector и всё работает

А вот в строках 17-20 код из сообщения #1
C#
1
2
3
4
if (id1 && nom13)
 {
    String s = News[i].Text;
      if (s.Contains(url1)) // если текст СОДЕРЖИТ
это уже не срабатывает и в Contains() значение из url1 не попадает

Не знаю... может сам подход бредовый... Но как могу...


Сделал по вашим рекомендациям. Выдаёт ошибку.
См. скрин.
Миниатюры
Как несколько раз извлечь данные из базы по двум условиям?  
0
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
09.11.2016, 23:50
Цитата Сообщение от zakaz_77 Посмотреть сообщение
это уже не срабатывает и в Contains() значение из url1 не попадает
Ошибку выдает? Или текст не находит?
0
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 730
10.11.2016, 00:06  [ТС]
Цитата Сообщение от Serg34 Посмотреть сообщение
Ошибку выдает? Или текст не находит?
Вообще реакции нет.

Если if (id1 && nom14) срабатывает, и я вижу значение в label (дублирую значение в label, чтобы видно было, что происходит)
То после if (id1 && nom13) никаких реакций не происходит
0
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
10.11.2016, 00:12
Лучший ответ Сообщение было отмечено zakaz_77 как решение

Решение

zakaz_77, Вобщем если у Вас не находит искомый текст в новостях, то скорее всего его там и нет.
Видимо, Вы ожидаете "чудо поиска" как в яндексе - вы вводите фразу, а он ищет похожие встречающиеся на разных сайтах.
Метод String.Contains() ищет точную копию одного текста внутри другого.
Даже если отличие только в заглавной и строчной букве - это уже разные символы и разный текст, и естественно Contains выдаст false. А "чудо поиск" как в яндексе - задача ну оооочень не тривиальная.
К примеру нужно понимать синонимы, ошибку раскладки клавиатуры и т.д.

Добавлено через 4 минуты
Цитата Сообщение от zakaz_77 Посмотреть сообщение
дублирую значение в label, чтобы видно было, что происходит
Научитесь пользоваться точками останова
Просто левый клик на серой вертикальной полоске слева от номера интересующей Вас строки.
И во время выполнения Вы можете навести курсор на нужную переменную и узнать текущее значение
Перейти на шаг вперед F11
1
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 730
10.11.2016, 01:10  [ТС]
Прилагаю скрины
На первом начал проход со строчки
string id = textBox2.Text;

На втором начал проход со строчки
label9.Text = url1;

Цитата Сообщение от Serg34 Посмотреть сообщение
Научитесь пользоваться точками останова
Попробовал... Пока разбираюсь....
Миниатюры
Как несколько раз извлечь данные из базы по двум условиям?   Как несколько раз извлечь данные из базы по двум условиям?  
0
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
10.11.2016, 08:28
zakaz_77, Вот видео по отладке
Там, правда, по разработку для AutoCAD, лучше с 06:20 смотрите
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2016, 08:28
Помогаю со студенческими работами здесь

В запросе к БД фигурируют 3 таблицы. Нужны данные по двум условиям
1. Первая таблица oc_product. Берем поля model и geolocation 2. Вторая таблица oc_product_description. Берем поля name и meta_keyword ...

Как из базы access извлечь данные для последующей обработки при помощи математических функций ?
Люди добрые помогите начинающим.... Есть база на access как мне, из нее достать эти данные чтобы можно было математические функции с...

Как из базы вывести один раз запись если их несколько?
Доброго времени суток! Ситуация такая, в есть таблица attendance у которой есть поле date, дата храниться как yyyy-mm-dd (2017-08-11) ...

Не получается правильно извлечь данные из базы
Доброго времени суток, уважаемые форумчане. Передо мной стоит такая задача: в БД есть таблица category_ru и таблица articles. В первой...

Нужно извлечь текст между определенными символами (в строке они встречаются несколько раз)
нужно из строки текста, содержащего и точки, и двоеточия (их может быть несколько), извлечь часть текста, находящуюся слева от самого...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru