powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
9 сообщений из 9, страница 1 из 1
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38239933
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, имеется БД из трёх таблиц:

Имеются два запроса к этой БД в виде представлений:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
--Представление №1:
SELECT        dbo.worker.wrk_id, dbo.worker_in_post.post_id, dbo.worker_in_otdel.otdel_id
FROM            dbo.worker LEFT OUTER JOIN
                         dbo.worker_in_otdel ON dbo.worker.wrk_id = dbo.worker_in_otdel.wrk_id LEFT OUTER JOIN
                         dbo.worker_in_post ON dbo.worker.wrk_id = dbo.worker_in_post.wrk_id

--Представление №2:
SELECT        dbo.worker.wrk_id, dbo.worker_in_post.post_id, COUNT(dbo.worker_in_otdel.otdel_id) AS [Количество отделов в которых состоит сотрудник]
FROM            dbo.worker LEFT OUTER JOIN
                         dbo.worker_in_otdel ON dbo.worker.wrk_id = dbo.worker_in_otdel.wrk_id LEFT OUTER JOIN
                         dbo.worker_in_post ON dbo.worker.wrk_id = dbo.worker_in_post.wrk_id
GROUP BY dbo.worker.wrk_id, dbo.worker_in_post.post_id


Запросы проверяю, в среде MSSQL2012Express прекрасно работают.

Затем
1) Запускаю Visual Studio 2012 Express,
2) создаю новый C# проект,
3) добавляю в качестве источника данных мою БД,
4) кидаю на форму из тулбара "Источники данных" представление на основе запроса №1,
5) проект запускаю,
все прекрасно работает:


Проделываю все шаги заново, но с представлением на основе запроса №2.
DataGridView в некоторых ячейках отображает ошибку:


Друзья, что не так делаю, почему VS ругается?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240009
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Torrero11Друзья, что не так делаю, почему VS ругается?
не так делаешь 2 запрос
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240030
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation, благодарю за ответ. Подскажите, что не так с запросом? Как вывести все id сотрудников, id их должностей и количество отделов, в которых они состоят и при этом, чтобы VS не ругался? Другими словами, как получить таблицу, которую я получаю на втором скриншоте, но без ошибок?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240035
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Torrero11pation, благодарю за ответ. Подскажите, что не так с запросом? Как вывести все id сотрудников, id их должностей и количество отделов, в которых они состоят и при этом, чтобы VS не ругался? Другими словами, как получить таблицу, которую я получаю на втором скриншоте, но без ошибок?

нужно только ответить на вопрос:
что является уникальным ключом для данного запроса?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240036
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Torrero11Другими словами, как получить таблицу, которую я получаю на втором скриншоте, но без ошибок? Точнее, как получить таблицу, которую я получаю на ПОСЛЕДНЕМ скриншоте, но без ошибок?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240110
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pationнужно только ответить на вопрос:
что является уникальным ключом для данного запроса?
pation, спасибо за подсказку, но... Ведь это выборка, а не таблица. Значения могут быть не уникальными во ВСЕХ столбцах, т.е. в каждом столбце может быть несколько одинаковых значений.
Задача состоит в том, чтобы
1) вывести все id сотрудников и id их должностей.
2) вывести количество отделов, в которых состоит каждый сотрудник.

Задачу 1 решает запрос№1. Затем, я добавляю к этому запросу COUNT и GROP BY. В итоге, в MSQL2012 работают оба запроса, как надо, а VS ругается на уникальность.

Что я не так делаю, как исправить запрос№2 ?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240196
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Torrero11pationнужно только ответить на вопрос:
что является уникальным ключом для данного запроса?
pation, спасибо за подсказку, но... Ведь это выборка, а не таблица. Значения могут быть не уникальными во ВСЕХ столбцах, т.е. в каждом столбце может быть несколько одинаковых значений.
Задача состоит в том, чтобы
1) вывести все id сотрудников и id их должностей.
2) вывести количество отделов, в которых состоит каждый сотрудник.

Задачу 1 решает запрос№1. Затем, я добавляю к этому запросу COUNT и GROP BY. В итоге, в MSQL2012 работают оба запроса, как надо, а VS ругается на уникальность.

Что я не так делаю, как исправить запрос№2 ?

как ты получаешь результаты запроса?
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240529
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Torrero111) Запускаю Visual Studio 2012 Express,
2) создаю новый C# проект,
3) добавляю в качестве источника данных мою БД,
4) кидаю на форму из тулбара "Источники данных" представление,
5) проект запускаю

Всё, более ничего не делаю.
То бишь, DataGridView и BindingNavigator привязаны к BindingSource, который, в свою очередь, ссылается на моё представление в БД.
...
Рейтинг: 0 / 0
DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
    #38240689
Torrero11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кому интересно, прописал весь код подключения вручную:
Код: c#
1.
2.
3.
4.
5.
6.
7.
            var adapterView = new SqlDataAdapter("SELECT * FROM view_1;", connection);
            var dataSet = new DataSet();
            adapterView.Fill(dataSet, "View");
            var bindingSourceView = new BindingSource(dataSet, "View");
            var gridView = new DataGridView();
            gridView.DataSource = bindingSourceView;
            this.Controls.Add(gridView);


Теперь всё работает, однако, почему код сгенерированный VS работает некорректно, пока, непонятно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView - ошибка "На столбец наложено ограничение по уникальности..."
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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