powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы с auto increment в таблице
20 сообщений из 20, страница 1 из 1
Проблемы с auto increment в таблице
    #39219556
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу приложение для работы с БД SQL Server. Обычный select возвращает результат в datatable который является источником для bindingsource, который является источником для gridControl (от DevExpress). Проблема возникает, когда я пытаюсь добавить строку через bindingnavigator. В таблице есть столбец ID автоинкрементный (на уровне приложения я еще отмечаю его как ключевой). Так вот при добавлении строки, она добавляется с пустыми значениями, и ячейку столбца ID у меня не получается изменить, и при переходе на другую строку мне пишет что ID не может быть пустым. При просмотре свойств этой колонки я заметил что она на уровне приложения не автоинкрементна. В итоге получается, что ни автоматом она не генерируется ни изменить мне себя не дает. Кто что подскажет по этому поводу?
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39219974
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
lex452При просмотре свойств этой колонки я заметил что она на уровне приложения не автоинкрементна.
Поставьте в свойствах колонки, что это "счетчик" и выкиньте из головы
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39219996
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220589
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

В единичном случае я так и сделал бы, но хотелось бы универсальный способ, для которого не нужно знать где есть инкремент, а где его нет
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220595
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также вопрос с похожей проблемой, я хочу реализовать копирование строки из интерфейса программы. То есть в меню выбираю копировать строку и вставляется новая строка со значениями из выделенной, но тоже не могу понять как сделать чтобы вставились только те поля которые не должны быть уникальными. А ключевые и уникальные можно было бы отредактировать.
Использовал
DataRow rowNew= dataTable.NewRow()
rowNew.Items=selectedRow.Items
dataTable.AddRow(rowNew)

извините за возможные ошибки в синтаксисе.

На этапе dataTable.AddRow(rowNew) ловлю исключение, что например столбец ID c таким значением уже существует.
Каким образом добавить новую строку которую можно доредактировать?
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220606
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ?

PS Не вникал в особенности работы с MSSQL из C#, но тут тупейшие вопросы.
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220625
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Также вопрос с похожей проблемой, я хочу реализовать копирование строки из интерфейса программы. То есть в меню выбираю копировать строку и вставляется новая строка со значениями из выделенной, но тоже не могу понять как сделать чтобы вставились только те поля которые не должны быть уникальными. А ключевые и уникальные можно было бы отредактировать.
Использовал
DataRow rowNew= dataTable.NewRow()
rowNew.Items=selectedRow.Items
dataTable.AddRow(rowNew)

извините за возможные ошибки в синтаксисе.

На этапе dataTable.AddRow(rowNew) ловлю исключение, что например столбец ID c таким значением уже существует.
Каким образом добавить новую строку которую можно доредактировать?
ну
DataRow rowNew= dataTable.NewRow()
rowNew.Items=selectedRow.Items
тут и редактируй уникальные поля (делай их уникальными)
dataTable.AddRow(rowNew)
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220630
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220633
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ?

PS Не вникал в особенности работы с MSSQL из C#, но тут тупейшие вопросы.
Вообще не понял к чему это написано?
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220643
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452ViPRos,

Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом
ну, не делай тогда Add пусть редактирует вручную

но если ты не знаешь какие поля уникальны и не предлагаешь дефольтные значения, то пользователь тем более не знает что туда вводить, что бы все было уникально

но как то ведь .Net знает, что тут ключ уникальный, а тут по жесткому форинкею что то происходит
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как я понимаю, ты пытаешься редактировать БД :)
при этом нифига не хочешь делать :)
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220648
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoslex452ViPRos,

Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом
ну, не делай тогда Add пусть редактирует вручную

но если ты не знаешь какие поля уникальны и не предлагаешь дефольтные значения, то пользователь тем более не знает что туда вводить, что бы все было уникально

но как то ведь .Net знает, что тут ключ уникальный, а тут по жесткому форинкею что то происходит

я хочу сделать возможность копирования строки, чтобы меньше данных вводить вручную. В том и вопрос, допустим я знаю уникальное поле. И мне нужно чтобы пользователю были предоставлены заполненные неуникальные данные, а уникальные были представлены как пустые значения, которые он сможет отредактировать. Но я немогу сделать addrow если не все поля заполнены. Мне нужно подобие того, когда нажимаешь добавить строку в bindingnavigator, но только не со всеми пустыми значениями, а с некоторыми скопированными из другой строки
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220674
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

так я же написал тебе - не делай АддРов :)
Покажи ему и пусть он корректирует те поля (можешь их сделать пустыми при показе)
а можешь еще тупее
просто отключи констрейнты :) перед вставкой в БД включишь
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220678
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoslex452,

так я же написал тебе - не делай АддРов :)
Покажи ему и пусть он корректирует те поля (можешь их сделать пустыми при показе)
а можешь еще тупее
просто отключи констрейнты :) перед вставкой в БД включишь

Если отключу то кто будет проверять корректность введенных данных? И что значит покажи ему? Я и спрашиваю как показать
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220709
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

а как ты сейчас показываешь?
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39220711
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот запись создана, но еще не вставлена в табличку
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39221817
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Частично сделал то что хотел. Автоинкремент прописал в datatable вручную ( так и не понял почему он не определился автоматом при запросе). А при добавлении новой строки я сначала считываю значения из выделенной строки, потом проверяю столбцы на уникальность и автоинкремент, и где их нет устанавливаю значение по умолчанию из тех что считал и только потом добавляю строку через gridView.AddRow().
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39221978
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

молодец :)
потихоночку и напишешь свой Фреймворк
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39222998
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
[quote lex452]Dima TНескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ?

Не забивайте себе голову, а просто всегда используйте SCOPE_IDENTITY().

@@IDENTITY может показать разные значения даже в рамках одной транзакции, так как показывает текущее показание счетчика вне зависимости от того, кто вставил строку.
...
Рейтинг: 0 / 0
Проблемы с auto increment в таблице
    #39223010
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Cat2]lex452пропущено...


Не забивайте себе голову, а просто всегда используйте SCOPE_IDENTITY().

@@IDENTITY может показать разные значения даже в рамках одной транзакции, так как показывает текущее показание счетчика вне зависимости от того, кто вставил строку.
Я вообще не понимаю зачем мне эта функция? У меня проблемы не было получить крайний ID мне он не важен. Проблема была в том что я типа не знаю какой столбец автоинкрементный, и я не понимаю почему в DataTable не передается это свойство через select. Чтобы я мог получить его из программы, заранее не зная где оно использовалось
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы с auto increment в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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