5 / 5 / 3
Регистрация: 13.04.2010
Сообщений: 34
1
.NET 4.x

DataGridView - ошибка "На столбец наложено ограничение по уникальности."

25.04.2013, 19:40. Показов 4796. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, имеется БД из трёх таблиц (картинка слева).
Задача состоит в том, чтобы в одной таблице вывести id ВСЕХ сотрудников, id их должностей и количество отделов, в которых состоит каждый сотрудник.
Реализовал это в виде представления, в среде MSSQL2012Express:
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
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

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

Но DataGridView в некоторых ячейках отображает ошибку (картинка посередине)

Друзья, что не так делаю, почему VS ругается, может что-то не так с запросом?

PS: При этом, если из SQL-запроса убрать COUNT и GROUP BY:
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
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

то всё работает, как надо (картинка справа)

Кстати, оба запроса в среде MSSQL2012Express прекрасно работают.
Миниатюры
DataGridView - ошибка "На столбец наложено ограничение по уникальности."   DataGridView - ошибка "На столбец наложено ограничение по уникальности."   DataGridView - ошибка "На столбец наложено ограничение по уникальности."  

0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 19:40
Ответы с готовыми решениями:

Ошибка - "на столбец наложено ограничение по уникальности. Значение "8" уже имеется"
Я делала приложение с этого сайта https://it-black.ru/rabota-s-bazoj-dannyh-v-ci_sharp/ Но...

ORA-00001: нарушено ограничение уникальности
Всех с наступающим Новым годным!) Есть 2 view. Мне нужно данные с одной переписывать в другую. ...

Не налагается ограничение уникальности на поля таблицы
Прочитал гайд http://technet.microsoft.com/ru-ru/library/ms190024(v=sql.105).aspx хотел сделать...

ORA-0001 нарушено ограничение уникальности
Помогите устранить ошибку: Имеется таблица с полями id, date (составной первичный ключ по обеим...

Выполнение Merge. ORA-00001: нарушено ограничение уникальности (HBFIAS.SYS_C00407044), хотя insert уникален
Выполняю запрос MERGE с помощью Java. st.executeQuery("MERGE INTO ADDROBJ a USING (SELECT *...

1
5 / 5 / 3
Регистрация: 13.04.2010
Сообщений: 34
25.04.2013, 21:03  [ТС] 2
Лучший ответ Сообщение было отмечено Тorrero11 как решение

Решение

Кому интересно, прописал весь код подключения вручную:
Кликните здесь для просмотра всего текста
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
25.04.2013, 21:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2013, 21:03
Помогаю со студенческими работами здесь

Как в datagridview заменить столбец из одной таблицы на столбец из второй?
Существуют 2 таблицы:"Storage" и "Managers". В таблице "Managers" указано "Managers_ID" и "FIO"....

Заполнить столбец datagridview при выборе столбца в другом datagridview
Здравствуйте! Подскажите как можно сделать так, чтобы при выборе столбца datagridview он заполнялся...

Ошибка: нет ограничения уникальности
CREATE TABLE "Абитуриенты" ( "id" integer NOT NULL, "ФИО" TEXT NOT NULL, "Льготы_id"...

Ошибка: нет ограничения уникальности
Пытаюсь связать две таблицы, пользуясь pgAdmin 4 Создаю две таблицы author book_author и пытаюсь...

ОШИБКА: нет ограничения уникальности, соответствующего данным ключам
Добрый день, у меня имеется таблица с названием concreteclasses и со столбцами classnumber, letter,...

Ограничение ввода в DataGridView
Есть рабочий грид. Возникла необходимость ограничить число символов ввода в ячейки, но при...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru