Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
3 / 2 / 1
Регистрация: 14.09.2016
Сообщений: 501
MS SQL

Не получается получить PrimaryKey после добавления данных в таблицу

31.01.2019, 22:37. Показов 2009. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      int primaryKey;
 
      using (SqlConnection sqlCon = new SqlConnection(connection))
                {
                    sqlCon.Open();
 
                    SqlCommand sqlc = new SqlCommand("INSERT INTO Tests(Whose,TestName) VALUES(@whose, @testname)", sqlCon);         
                   
                    sqlc.Parameters.AddWithValue("@whose", whose);
                    sqlc.Parameters.AddWithValue("@testname", UserAnswer);
 
                    primaryKey = Convert.ToInt32(sqlc.ExecuteScalar());
                    MessageBox.Show(primaryKey.ToString());
 
                    sqlCon.Close();
                }
Почему ответ 0? Хотя в таблицу добавляю 6 раз уже так, id 6 должен быть, а пишет 0 всегда.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.01.2019, 22:37
Ответы с готовыми решениями:

После добавления данных в таблицу не работают фильтры
Если сначала применять фильтры над уже существующими данными, все в порядке. Добавляют новую запись, и фильтры не применяются.

Ошибка в INSERT после добавления колонки в таблицу
Здравствуйте, есть код работы с Mysql, трабл в том, что если не добавлять новые колонки то он работает, и меняет данные в нужной колонке,...

Добавить запись в таблицу после добавления поля
Всем привет! Наведите на мысль кто может )) У меня есть поле-1, в него записывается инфа. Если человеку нужно еще одно поле, он по...

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
31.01.2019, 23:36
Лучший ответ Сообщение было отмечено Terminator004 как решение

Решение

Terminator004, метод ExecuteScalar предназначен для получения значения из первой колонки первой строки. INSERT запрос ничего не возвращает. В таком случае ExecuteScalar возвращает null, а Convert.ToInt32 превращает это в 0. Нужно добавить к запросу SELECT SCOPE_IDENTITY().
C#
7
SqlCommand sqlc = new SqlCommand("INSERT INTO Tests(Whose,TestName) VALUES(@whose, @testname); SELECT SCOPE_IDENTITY()", sqlCon);
P.S. Вызов sqlCon.Close(); внутри using не нужен.
1
3 / 2 / 1
Регистрация: 14.09.2016
Сообщений: 501
01.02.2019, 00:06  [ТС]
OwenGlendower, спасибо!
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
01.02.2019, 09:13
Лучший ответ Сообщение было отмечено OwenGlendower как решение

Решение

T-SQL
1
insert someTable (f1,f2) output inserted.id values (v1,v2)  -- id имя поля автоинкремента
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.02.2019, 09:13
Помогаю со студенческими работами здесь

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

После добавления записи в таблицу checkbox оставить выбранным
Доброго времени суток, Уважаемые! С VB и Access на ВЫ, поэтому прошу помощи у Вас! Есть форма, на ней вводятся ФИО, адрес, и т.д.,...

GenerateDBDirect после добавления колонки в существующую таблицу в DataSet
Имеем отношение cards в dataset, которая заполняется из таблицы dbcards в бд и имеет связи с другими отношениями. Так же у cards имеется...

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

Отмена добавления данных в таблицу
Здравствуйте, подскажите пожалуйста как мне отменить добавление данных в таблицу? Добавляю данные следующим образом: void __fastcall...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru