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

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

21.04.2018, 18:51. Показов 14742. Ответов 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,228
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,228
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,228
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,228
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,228
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,228
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,228
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,228
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru