powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как объединить два SQL запроса в один? - C#
33 сообщений из 33, показаны все 2 страниц
Как объединить два SQL запроса в один? - C#
    #39636119
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу,чтобы при добавлении договора в 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
Как объединить два SQL запроса в один? - C#
    #39636122
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WHERE первое_условие OR второе_условие
(или AND, смотря как их нужно объединить)
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636131
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, эта схема не работает потому что не может быть два подзапроса. я уже пробовала так объединить.
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636132
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите ваш запрос
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636134
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...и текст выданной ошибки
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636143
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как объединить два SQL запроса в один? - C#
    #39636146
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayhggghh,

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


И вот какая ошибка.
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636155
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я же написал, как надо. У вас два условия.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
Как объединить два SQL запроса в один? - C#
    #39636156
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayhggghhKonst_One, а как тогда правильно? покажите,пожалуйста.

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

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

ps
передавать параметры в строку надо так:
Код: c#
1.
var sql = string.Format("...AND Код_заявки LIKE '%{0}'", k1);
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636167
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, нужен ли вам там LIKE ещё большой вопрос?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636175
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как объединить два SQL запроса в один? - C#
    #39636177
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, хорошо,чем можно заменить LIKE ?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636179
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как объединить два SQL запроса в один? - C#
    #39636183
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, это типо ещё нужно предусмотреть тот вариант,если по запросу ничего не было найдено,то чтобы ошибки не было?
или нет?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636184
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayhggghhKonst_One, это типо ещё нужно предусмотреть тот вариант,если по запросу ничего не было найдено,то чтобы ошибки не было?
или нет?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636187
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, или он просто не может содержат два подзапроса и поэтому ошибка?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636189
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно
проверьте наличие записей в датасете, если нет , то нужно вернуть пустую строку. по хорошему ещё в коде, где добавляете айтем в комбобокс так же проверить сначал, что вернула ваша функция, а уж потом что-то добавлять
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636191
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и посмотрите вариант с биндингом напрямую , зачем вы там в цикле что-то пытаетесь сделать, когда можно сразу получить нужный датасет для комбобокса
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636193
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, как вернуть пустую строку?
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636194
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, как получить нужный датасет для комбобокса?
я не понимаю эти схемы.
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636199
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 static public string StringQuery(string _query)
 {
            string result = "";
           
try {
                SqlDataAdapter DA = new SqlDataAdapter(_query, con);
                DataSet DS = new DataSet();
                DA.Fill(DS, "DS");
                result = DS.Tables["DS"].Rows[0][0].ToString();
}
catch (Exception e) {
//some log?
}
return result;
}
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636201
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayhggghhKonst_One, как получить нужный датасет для комбобокса?
я не понимаю эти схемы.

https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/controls/how-to-bind-a-windows-forms-combobox-or-listbox-control-to-data
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636203
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, хорошо,спасибо,сейчас посмотрю.
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636207
mayhggghh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,а я не использую DataSource и у меня ничего с ней не связано
...
Рейтинг: 0 / 0
Как объединить два SQL запроса в один? - C#
    #39636210
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayhggghhKonst_One,а я не использую DataSource и у меня ничего с ней не связано

это ваше дело, вариантов несколько. продалжайте делать как раньше, но цикл я бы всё равно убрал, подумайте

ps
за вас переписывать не интересно, попробуйте сами
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как объединить два SQL запроса в один? - C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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