Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/75: Рейтинг темы: голосов - 75, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85

Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)

21.04.2018, 18:51. Показов 14820. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть listBox1, нужно в него вывести ФИО созданного из 3 полей. По умолчанию идет запрос

SQL
1
SELECT Фамилия, Имя, Отчество, [Адрес по месту регистрации], [Дата рождения], [Медицинский полис], [№ диагноза], [№ осмотра], [№ пациента] FROM Пациенты
нужно поменять на

SQL
1
2
3
SELECT        RTRIM(Фамилия) + ' ' + LEFT(Имя, 1) + '.' + LEFT(Отчество, 1) + '.' AS Expr1
FROM            Пациенты
ORDER BY Expr1

Запрос правильный, при выполнении выводит все хорошо, но возникает ошибка Схема, возвращенная новым запросом, отличается от основного запроса. Не могли бы подсказать что не так?
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2018, 18:51
Ответы с готовыми решениями:

Схема, возвращённая новым запросом отличается, от основного запроса
Пытаюсь сделать выборку из разных таблиц бд, потому как связаны они по ID и вместо цифр хотелось бы видеть текстовые значения. В опция...

Схема возвращенная новым запросом, отличается от основного запроса!
Хотел дополнить запрос Inner Join-ами в dataGrid, но когда наживаю ОК, появляется сообщение "Схема возвращенная новым запросом,...

Чем отличается Microsoft® SQL Server® 2008 Express with Tools от Microsoft® SQL Server® 2008 Express with Adva
Друзья! Есть две СУБД, как я понимаю: Microsoft® SQL Server® 2008 Express with Tools Microsoft® SQL Server® 2008 Express with...

21
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 19:34  [ТС]
Пытаюсь делать вручную

Необработанное исключение типа "System.ArgumentException" в System.Windows.Forms.dll

C#
1
2
3
4
5
6
7
8
9
10
            SqlConnection con = new SqlConnection(@"Data Source=E:\Stomotologiya.mdf");
            SqlCommand cmd = new SqlCommand("SELECT RTRIM(Фамилия) + ' ' + LEFT(Имя, 1) + '.' + LEFT(Отчество, 1) + '.' AS Expr1 FROM  Пациенты ORDER BY Expr1", con);
            listBox1.Items.Clear();
            con.Open();
            SqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                listBox1.Items.Add(dataReader.GetString(1));
            }
            con.Close();
Брала из https://www.cyberforum.ru/ado-... 72010.html
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 19:45
Sasha2000,
GetString принимает индекс (индексация с нуля) колонки, которую нужно вернуть.
Поскольку у вас происходит в запросе конкатенация строк, и при этом возвращается результат этой конкатенации и ничего более, то делаем вывод, что запрос возвращает одну колонку. Следовательно замените 1 на 0, в вызове dataReader.GetString(1).

MSDN - DataReader.GetString:
i
Type: System.Int32
The zero-based column ordinal.
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:00  [ТС]
Я закомментировала всю работу с listBox1, но ошибка все равно осталась

System.ArgumentException не обработано
Message: Необработанное исключение типа "System.ArgumentException" в System.Windows.Forms.dll
Дополнительные сведения: Изменение коллекции элементов невозможно, если задано свойство DataSource.

C#
1
2
3
4
5
6
7
8
9
10
            SqlConnection con = new SqlConnection(@"Data Source=E:\Stomotologiya.mdf");
            SqlCommand cmd = new SqlCommand("SELECT RTRIM(Фамилия) + ' ' + LEFT(Имя, 1) + '.' + LEFT(Отчество, 1) + '.' AS Expr1 FROM  Пациенты ORDER BY Expr1", con);
            //listBox1.Items.Clear();
            con.Open();
            SqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                //listBox1.Items.Add(dataReader.GetString(0));
            }
            con.Close();
Добавлено через 3 минуты
Все, поняла. Свойство DataSource очистила и вышла ошибка


Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll

Дополнительные сведения: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 26 - Ошибка при обнаружении указанного сервера или экземпляра)

Добавлено через 1 минуту
Ошибка в строчке

C#
1
con.Open();
Добавлено через 2 минуты
Значит дело в строке подключения, правильно? Я брала ее отсюда https://www.cyberforum.ru/ado-... 72010.html
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:02
Цитата Сообщение от Sasha2000 Посмотреть сообщение
Значит дело в строке подключения, правильно? Я брала ее отсюда Как должна выглядеть строка подключения к БД
Если раньше работало, то, скорее всего, отключилась служба sql server-a.
Зайдите через службы (Win + R => services.msc), найдите нужную и запустите.
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:06  [ТС]
Я так поняла что дело в том, что я заполнила свойство DataSource. Но на всякий случай сервер запущен
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:09  [ТС]
Я склоняюсь к мысли что дело в строке подключения. Можно ли как-то обратиться к уже существующему?
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:12  [ТС]
Строчка

C#
1
SqlConnection con = new SqlConnection(@"Data Source = DESKTOP-27I3LAM; Initial Catalog = Stomotologiya; Integrated Security = True");
выдает туже ошибку
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:13
Лучший ответ Сообщение было отмечено Sasha2000 как решение

Решение

Путь к файлу БД рекомендуется указывать относительный, у вас же он абсолютный.

Проверьте, находится ли файл базы в указанной директории.
Далее попробуйте изменить строку подключения на такую:
C#
1
"Data Source=.\; Integrated Security = SSPI; Initial Catalog=Stomotologiya;  AttachDbFilename=E:\Stomotologiya.mdf";
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:18  [ТС]
Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll

Дополнительные сведения: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: Named Pipes Provider, error: 40 - Не удалось открыть подключение к SQL Server)

Сейчас по статье проверю разрешены ли удаленные соединения http://yolper.ru/12
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:18
Эм, проблема устранена? Ок, понял.
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:21  [ТС]
Нет, но ошибка изменилась с 26 на 40. Это же прогресс!?

Добавлено через 2 минуты
С SQL Server все хорошо.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:30
Цитата Сообщение от Sasha2000 Посмотреть сообщение
26 на 40
Попробуйте открыть SQL Server Configuration Manager -> SQL Native Client Configuration (32 bit) -> Client Protocols.

Включите все протоколы, которые есть (Named Pipes, в частности). Есть мысль, что почему-то запрос идет по именованным каналам, которые отключены. В рунете есть подобные ошибки.
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:31
Видимо, что инстанс не донастроен или т.п.
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:32  [ТС]
Все включено...

С помощью вот этого окна можно построить запрос, отличный от указанного (мне кажется что это мой единственный шанс заполнить )
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:33  [ТС]
Все включено...
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 20:41  [ТС]
Вот смотрите. Я делаю заполнение компонента запросом. Запрос работает, но не сохраняет
Миниатюры
Схема, возвращенная новым запросом, отличается от основного запроса (SQL Server)  
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 20:44
Уфф, мой запас догадок исчерпан.

Если запрос, построенный в конструкторе, отрабатывает корректно, то просто зайдите в настройки и скопируйте строку подключения.

Можно попробовать выполнить такой запрос:
SQL
1
2
USE master;
SELECT * FROM sysdatabases;
Найти свою базу в списке. Проверить наличие файла базы по пути, указанном в колонке filename.

1. Попробуйте удалить базу из списка в Sql Server Management Studio, предварительно сделав бэкап.
2. Далее ее приаттачить повторно. Либо из файла, либо из бэкапа.
3. Использовать указанную вами ранее в посте 8 строку подключения.
1
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 85
21.04.2018, 21:11  [ТС]
А Вы не знаете почему при построители запросов нельзя даже одно поле убрать?
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
21.04.2018, 21:30
Давно не работал с этими мастерами запросов, но скорее всего мастер предполагает, что DataGridView, который будет отображать данные запроса, будет неизменен по своей структуре, поэтому нельзя менять схему запроса, можно добавлять только фильтры.
Там между прочим указано, что если вы хотите изменить существующий запрос, то воспользйутесь командой "Настроить".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2018, 21:30
Помогаю со студенческими работами здесь

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed- User: Reason: Not defined as a valid user of a trusted SQL Server connection
Login failed- User: Reason: Not defined as a valid user of a trusted SQL Server connection Вот такую ошибку выдает. В DSN...

Ошибка SQL запроса #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax t
Помогите пожалуйста! CREATE TABLE `tickets` ( `id` int(4) NOT NULL auto_increment, `user` int(11) NOT NULL default '0', ...

Обработка результата запроса из MS SQL SERVER
Добрый день. Потихоньку делал для себя проект. Столкнулся с проблемой. Когда я возвращаю результат запроса из БД и преобразую значение в...

Схема данных. Microsoft SQL Server
Создание схемы данных. Разработать информационную систему "Учебная нагрузка" для учета нагрузки преподавателя ВУЗа и автоматизации...

Результат нашего запроса из таблицы sql server
помоги пожалуйста сделать клиент на с шарпе, в котором будет выводиться результат нашего запроса из таблицы sql server, есть 2 таблички, в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru