|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Пишу приложение для работы с БД SQL Server. Обычный select возвращает результат в datatable который является источником для bindingsource, который является источником для gridControl (от DevExpress). Проблема возникает, когда я пытаюсь добавить строку через bindingnavigator. В таблице есть столбец ID автоинкрементный (на уровне приложения я еще отмечаю его как ключевой). Так вот при добавлении строки, она добавляется с пустыми значениями, и ячейку столбца ID у меня не получается изменить, и при переходе на другую строку мне пишет что ID не может быть пустым. При просмотре свойств этой колонки я заметил что она на уровне приложения не автоинкрементна. В итоге получается, что ни автоматом она не генерируется ни изменить мне себя не дает. Кто что подскажет по этому поводу? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 19:54 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
lex452При просмотре свойств этой колонки я заметил что она на уровне приложения не автоинкрементна. Поставьте в свойствах колонки, что это "счетчик" и выкиньте из головы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 11:36 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 11:50 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Cat2, В единичном случае я так и сделал бы, но хотелось бы универсальный способ, для которого не нужно знать где есть инкремент, а где его нет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 19:27 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Также вопрос с похожей проблемой, я хочу реализовать копирование строки из интерфейса программы. То есть в меню выбираю копировать строку и вставляется новая строка со значениями из выделенной, но тоже не могу понять как сделать чтобы вставились только те поля которые не должны быть уникальными. А ключевые и уникальные можно было бы отредактировать. Использовал DataRow rowNew= dataTable.NewRow() rowNew.Items=selectedRow.Items dataTable.AddRow(rowNew) извините за возможные ошибки в синтаксисе. На этапе dataTable.AddRow(rowNew) ловлю исключение, что например столбец ID c таким значением уже существует. Каким образом добавить новую строку которую можно доредактировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 19:47 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Нескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ? PS Не вникал в особенности работы с MSSQL из C#, но тут тупейшие вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:03 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:16 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
ViPRos, Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:22 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Dima TНескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ? PS Не вникал в особенности работы с MSSQL из C#, но тут тупейшие вопросы. Вообще не понял к чему это написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:25 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
lex452ViPRos, Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом ну, не делай тогда Add пусть редактирует вручную но если ты не знаешь какие поля уникальны и не предлагаешь дефольтные значения, то пользователь тем более не знает что туда вводить, что бы все было уникально но как то ведь .Net знает, что тут ключ уникальный, а тут по жесткому форинкею что то происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:39 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
как я понимаю, ты пытаешься редактировать БД :) при этом нифига не хочешь делать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:40 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
ViPRoslex452ViPRos, Вопрос в том как определить какие поля должны быть уникальными, и как предоставить пользователю возможность редактирования через интерфейс, а не в коде. Просто таблиц много и для каждой прописывать уникальные столбцы считаю не очень хорошим вариантом ну, не делай тогда Add пусть редактирует вручную но если ты не знаешь какие поля уникальны и не предлагаешь дефольтные значения, то пользователь тем более не знает что туда вводить, что бы все было уникально но как то ведь .Net знает, что тут ключ уникальный, а тут по жесткому форинкею что то происходит я хочу сделать возможность копирования строки, чтобы меньше данных вводить вручную. В том и вопрос, допустим я знаю уникальное поле. И мне нужно чтобы пользователю были предоставлены заполненные неуникальные данные, а уникальные были представлены как пустые значения, которые он сможет отредактировать. Но я немогу сделать addrow если не все поля заполнены. Мне нужно подобие того, когда нажимаешь добавить строку в bindingnavigator, но только не со всеми пустыми значениями, а с некоторыми скопированными из другой строки ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 20:46 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
lex452, так я же написал тебе - не делай АддРов :) Покажи ему и пусть он корректирует те поля (можешь их сделать пустыми при показе) а можешь еще тупее просто отключи констрейнты :) перед вставкой в БД включишь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 21:55 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
ViPRoslex452, так я же написал тебе - не делай АддРов :) Покажи ему и пусть он корректирует те поля (можешь их сделать пустыми при показе) а можешь еще тупее просто отключи констрейнты :) перед вставкой в БД включишь Если отключу то кто будет проверять корректность введенных данных? И что значит покажи ему? Я и спрашиваю как показать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 22:04 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
lex452, а как ты сейчас показываешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 23:33 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
вот запись создана, но еще не вставлена в табличку ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 23:38 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
Частично сделал то что хотел. Автоинкремент прописал в datatable вручную ( так и не понял почему он не определился автоматом при запросе). А при добавлении новой строки я сначала считываю значения из выделенной строки, потом проверяю столбцы на уникальность и автоинкремент, и где их нет устанавливаю значение по умолчанию из тех что считал и только потом добавляю строку через gridView.AddRow(). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 21:04 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
lex452, молодец :) потихоночку и напишешь свой Фреймворк ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 02:44 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
[quote lex452]Dima TНескромный вопрос: T-SQL как устроен читали? что такое @@IDENTITY и чем оно отличается от SCOPE_IDENTITY() ? Не забивайте себе голову, а просто всегда используйте SCOPE_IDENTITY(). @@IDENTITY может показать разные значения даже в рамках одной транзакции, так как показывает текущее показание счетчика вне зависимости от того, кто вставил строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 10:13 |
|
Проблемы с auto increment в таблице
|
|||
---|---|---|---|
#18+
[quot Cat2]lex452пропущено... Не забивайте себе голову, а просто всегда используйте SCOPE_IDENTITY(). @@IDENTITY может показать разные значения даже в рамках одной транзакции, так как показывает текущее показание счетчика вне зависимости от того, кто вставил строку. Я вообще не понимаю зачем мне эта функция? У меня проблемы не было получить крайний ID мне он не важен. Проблема была в том что я типа не знаю какой столбец автоинкрементный, и я не понимаю почему в DataTable не передается это свойство через select. Чтобы я мог получить его из программы, заранее не зная где оно использовалось ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 11:29 |
|
|
start [/forum/topic.php?fid=20&msg=39219556&tid=1400641]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 152ms |
0 / 0 |