Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как объединить два SQL запроса в один? - C# / 25 сообщений из 33, страница 1 из 2
25.04.2018, 15:41
    #39636119
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Хочу,чтобы при добавлении договора в COMBOBOX отображались заявки,поступившие от администрации.

Вот код:
Код: c#
1.
2.
3.
4.
5.
максКодЗаявки = Convert.ToInt32(WSDB.StringQuery("SELECT MAX(Код_заявки) FROM Журнал_заявок"));
            for (int k1 = 1; k1 < максКодЗаявки; k1++)
            {
                comboBox3.Items.Add(WSDB.StringQuery($"SELECT Код_заявки FROM Журнал_заявок WHERE Код_заявки LIKE {k1}")); 
                  }



Всё работает,но вот только одна загвосточка,нужно чтобы в COMBOBOX отображались только те заявки,которые не закреплены ни за одним договором.
Есть два запроса,но как их объединить в один?

Первый запрос:
Код: c#
1.
comboBox3.Items.Add(WSDB.StringQuery($"SELECT Код_заявки FROM Журнал_заявок WHERE Код_заявки LIKE {k1}"));


Второй запрос:
Код: c#
1.
comboBox3.Items.Add(WSDB.StringQuery("SELECT Код_заявки FROM Журнал_заявок  WHERE NOT EXISTS(SELECT  Номер_заявки FROM Договора WHERE Договора.Номер_заявки = Журнал_заявок.Код_заявки ) "));
...
Рейтинг: 0 / 0
25.04.2018, 15:44
    #39636122
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
WHERE первое_условие OR второе_условие
(или AND, смотря как их нужно объединить)
...
Рейтинг: 0 / 0
25.04.2018, 15:49
    #39636131
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Shocker.Pro, эта схема не работает потому что не может быть два подзапроса. я уже пробовала так объединить.
...
Рейтинг: 0 / 0
25.04.2018, 15:50
    #39636132
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Покажите ваш запрос
...
Рейтинг: 0 / 0
25.04.2018, 15:51
    #39636134
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
...и текст выданной ошибки
...
Рейтинг: 0 / 0
25.04.2018, 16:02
    #39636143
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Shocker.Pro,
Код: c#
1.
2.
3.
4.
максКодЗаявки = Convert.ToInt32(WSDB.StringQuery("SELECT MAX(Код_заявки) FROM Журнал_заявок"));
            for (int k1 = 1; k1 < максКодЗаявки; k1++)
            {
                comboBox3.Items.Add(WSDB.StringQuery($"SELECT Код_заявки FROM Журнал_заявок WHERE NOT EXISTS(SELECT  Номер_заявки FROM Договора WHERE Договора.Номер_заявки = Журнал_заявок.Код_заявки AND Код_заявки LIKE {k1} )"));



Хм,ошибки не выдал,но одна первая заявка дублируется при выборе.
...
Рейтинг: 0 / 0
25.04.2018, 16:04
    #39636146
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghh,

вы делаете неправильно. сначала получите данные из базы и уже потом из резалтсета заполните свой комбобокс или сделайте нормальный биндинг
...
Рейтинг: 0 / 0
25.04.2018, 16:08
    #39636150
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One, а как тогда правильно? покажите,пожалуйста.
...
Рейтинг: 0 / 0
25.04.2018, 16:11
    #39636153
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Shocker.Pro, Вот правильный запрос.
Код: c#
1.
 comboBox3.Items.Add(WSDB.StringQuery($"SELECT Код_заявки FROM Журнал_заявок WHERE NOT EXISTS(SELECT Номер_заявки FROM Договора WHERE Договора.Номер_заявки = Журнал_заявок.Код_заявки) AND Код_заявки LIKE {k1}"));


И вот какая ошибка.
...
Рейтинг: 0 / 0
25.04.2018, 16:12
    #39636155
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
я же написал, как надо. У вас два условия.mayhggghh
Код: c#
1.
WHERE Код_заявки LIKE {k1}

mayhggghh
Код: c#
1.
WHERE NOT EXISTS(SELECT  Номер_заявки FROM Договора WHERE Договора.Номер_заявки = Журнал_заявок.Код_заявки )

Их нужно записать через AND или через OR последовательно. А вы одно условие зачем-то запихали внутрь другого
mayhggghh
Код: c#
1.
WHERE NOT EXISTS(SELECT  Номер_заявки FROM Договора WHERE Договора.Номер_заявки = Журнал_заявок.Код_заявки AND Код_заявки LIKE {k1} )
...
Рейтинг: 0 / 0
25.04.2018, 16:12
    #39636156
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhKonst_One, а как тогда правильно? покажите,пожалуйста.

что у вас такое WSDB.StringQuery ?
...
Рейтинг: 0 / 0
25.04.2018, 16:13
    #39636157
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhВот правильный запрос.ок
...
Рейтинг: 0 / 0
25.04.2018, 16:13
    #39636158
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhИ вот какая ошибка.ну и на какой строке ошибка и причем тут вложенные запросы?
...
Рейтинг: 0 / 0
25.04.2018, 16:14
    #39636161
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Shocker.Pro, Я забыла одну скобку.Я увидела свою ошибку. И поэтому всё заработало,но не правильно. Я уже скинула правильный запрос и ошибку,которую выдаёт.
...
Рейтинг: 0 / 0
25.04.2018, 16:15
    #39636162
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One, WSDB это класс. StringQuery процедура в классе.
...
Рейтинг: 0 / 0
25.04.2018, 16:17
    #39636163
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Shocker.Pro, Потому что запрос был написан через обращения к классу и поэтому он на него и ссылается,когда выдаёт ошибку,а не на саму строчку кода.
Я спрашиваю же как объединить запросы,чтобы не было ошибок.
...
Рейтинг: 0 / 0
25.04.2018, 16:18
    #39636166
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhKonst_One, WSDB это класс. StringQuery процедура в классе.

показывайте эту процедуру

ps
передавать параметры в строку надо так:
Код: c#
1.
var sql = string.Format("...AND Код_заявки LIKE '%{0}'", k1);
...
Рейтинг: 0 / 0
25.04.2018, 16:20
    #39636167
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
кстати, нужен ли вам там LIKE ещё большой вопрос?
...
Рейтинг: 0 / 0
25.04.2018, 16:26
    #39636175
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 static public string StringQuery(string _query)
        {
            string result = null;
           
                SqlDataAdapter DA = new SqlDataAdapter(_query, con);
                DataSet DS = new DataSet();
                DA.Fill(DS, "DS");
                result = DS.Tables["DS"].Rows[0][0].ToString();
            return result;


вот эта процедура.
...
Рейтинг: 0 / 0
25.04.2018, 16:27
    #39636177
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One, хорошо,чем можно заменить LIKE ?
...
Рейтинг: 0 / 0
25.04.2018, 16:27
    #39636179
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhKonst_One,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 static public string StringQuery(string _query)
        {
            string result = null;
           
                SqlDataAdapter DA = new SqlDataAdapter(_query, con);
                DataSet DS = new DataSet();
                DA.Fill(DS, "DS");
                result = DS.Tables["DS"].Rows[0][0].ToString();
            return result;



вот эта процедура.

ну так , а если ничего не найдёт, то исключение словите
...
Рейтинг: 0 / 0
25.04.2018, 16:31
    #39636183
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One, это типо ещё нужно предусмотреть тот вариант,если по запросу ничего не было найдено,то чтобы ошибки не было?
или нет?
...
Рейтинг: 0 / 0
25.04.2018, 16:31
    #39636184
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
mayhggghhKonst_One, это типо ещё нужно предусмотреть тот вариант,если по запросу ничего не было найдено,то чтобы ошибки не было?
или нет?
...
Рейтинг: 0 / 0
25.04.2018, 16:33
    #39636187
mayhggghh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
Konst_One, или он просто не может содержат два подзапроса и поэтому ошибка?
...
Рейтинг: 0 / 0
25.04.2018, 16:33
    #39636189
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить два SQL запроса в один? - C#
конечно
проверьте наличие записей в датасете, если нет , то нужно вернуть пустую строку. по хорошему ещё в коде, где добавляете айтем в комбобокс так же проверить сначал, что вернула ваша функция, а уж потом что-то добавлять
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как объединить два SQL запроса в один? - C# / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]