Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регистрация на сайте. / 25 сообщений из 150, страница 1 из 6
08.07.2014, 15:04
    #38690560
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Всем привет !!!

Надо организовать регистрацию на сайте. Не могу понять одну проблему.

При добавлении пользователей как получить еще не созданный ID пользователя ? В Дельфи удавалось получить получить зарезервированный ID.
...
Рейтинг: 0 / 0
08.07.2014, 15:20
    #38690593
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
У еще не созданного пользователя нет ID - глупо пытаться его получить
У уже созданного пользователя есть ID - в чем проблема его получить?
...
Рейтинг: 0 / 0
08.07.2014, 15:21
    #38690597
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
antihacker777, к ASP.NET Ваш вопрос не имеет отношения. Скорее всего Вы используете MS SQL Server в качестве СУБД и колонку типа IDENTITY.
В таком случае получайте идентификатор после вставки записи в БД:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
private const string InsertText = @"
    BEGIN
        INSERT INTO Users
               (Login, Password)
        VALUES (@p_sLogin, @p_sPassword)
                
        SET @p_nID = SCOPE_IDENTITY();
    END";

/// <summary>
/// Добавляет новую запись о пользователе в базу
/// </summary>
public void Insert(UserRecord record)
{
    using (var cmd = new SqlCommand(InsertText, connection))
    {
        cmd.Parameters.AddWithValue("p_sLogin", record.Login);
        cmd.Parameters.AddWithValue("p_sPassword", record.Password);
        cmd.Parameters.Add("p_nID", SqlDbType.Int).Direction = ParameterDirection.Output;
        cmd.ExecuteNonQuery();

        record.ID = cmd.Parameters[ "p_nID" ].AsInt32();
    }
}
...
Рейтинг: 0 / 0
08.07.2014, 15:22
    #38690599
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
ЗЫ: конечно упоминание в контексте технологий работы с пользователем "ASP.NET" и "Дельфи" - безусловно абсолютно подробное описание инструментов, с которыми вы работаете.
...
Рейтинг: 0 / 0
08.07.2014, 15:23
    #38690603
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Shocker.ProУ еще не созданного пользователя нет ID - глупо пытаться его получитьС чего вдруг?

Делаешь свой метод генерации ID на сиквенсе, или ещё как и получаешь, сколько захочешь. Или используешь GUID в качестве ID.
...
Рейтинг: 0 / 0
08.07.2014, 15:23
    #38690604
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAСкорее всего Вы используете MS SQL Server в качестве СУБД и колонку типа IDENTITY.
опять телепатия? )))
...
Рейтинг: 0 / 0
08.07.2014, 15:24
    #38690606
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAShocker.ProУ еще не созданного пользователя нет ID - глупо пытаться его получитьС чего вдруг?

Делаешь свой метод генерации ID на сиквенсе, или ещё как и получаешь, сколько захочешь. Или используешь GUID в качестве ID.под несозданным пользователем я понимаю отсутствие экземпляра )))
а гуид, понятно, он и в африке гуид
...
Рейтинг: 0 / 0
08.07.2014, 15:25
    #38690607
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Shocker.Pro
skyANAСкорее всего Вы используете MS SQL Server в качестве СУБД и колонку типа IDENTITY.
опять телепатия? )))Фигопатия!

Я до SQL Server работал с Oracle. А там сиквенсы уже давно.
...
Рейтинг: 0 / 0
08.07.2014, 15:28
    #38690615
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Shocker.ProskyANAпропущено...
С чего вдруг?

Делаешь свой метод генерации ID на сиквенсе, или ещё как и получаешь, сколько захочешь. Или используешь GUID в качестве ID.под несозданным пользователем я понимаю отсутствие экземпляраА с чего Вы взяли, что экземпляр не создан?
...
Рейтинг: 0 / 0
08.07.2014, 15:36
    #38690633
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
А вообще ТС походу адаптеры и таблицы использует, судя по предыдущим топикам.
Тогда ссыль: Получение значений идентификаторов или автонумерации .
...
Рейтинг: 0 / 0
08.07.2014, 15:38
    #38690639
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAА с чего Вы взяли, что экземпляр не создан? antihacker777еще не созданный ID пользователячерт его знает, автора топика, может он EF использует, тогда надо просто сохранить контекcт и у пользователя появится ID
...
Рейтинг: 0 / 0
08.07.2014, 15:42
    #38690649
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Дико извиняюсь. Так и есть. СУБД SQL SERVER. А уже созданную случайно не заберет кто то другой ? Допустим он тоже в это время делаеть добавление. А что такое record.ID = cmd.Parameters[ "p_nID" ].AsInt32(); ? От куда взялся record.ID ?
...
Рейтинг: 0 / 0
08.07.2014, 16:02
    #38690707
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
antihacker777Дико извиняюсь. Так и есть. СУБД SQL SERVER. А уже созданную случайно не заберет кто то другой ? Допустим он тоже в это время делаеть добавление.Не заберёт, не переживайте.
antihacker777А что такое record.ID = cmd.Parameters[ "p_nID" ].AsInt32(); ? От куда взялся record.ID ?Свойство типа UserRecord. Этой мой тип, я его придумал для примера
...
Рейтинг: 0 / 0
08.07.2014, 16:03
    #38690710
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
antihacker777 А уже созданную случайно не заберет кто то другой ?
не заберёт, новое значение получит.
...
Рейтинг: 0 / 0
08.07.2014, 17:11
    #38690862
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
antihacker777При добавлении пользователей как получить еще не созданный ID пользователя ?
Как вариант транзакцию использовать.
...
Рейтинг: 0 / 0
08.07.2014, 17:29
    #38690886
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
Парамонantihacker777При добавлении пользователей как получить еще не созданный ID пользователя ?
Как вариант транзакцию использовать.Для чего и как?
...
Рейтинг: 0 / 0
08.07.2014, 17:40
    #38690905
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAДля чего и как?
Ну, как бэ получаем id, заранее, без фактического добавления в базу, если все ок делаем в итоге комит, если нет откат.
Понятно? )
...
Рейтинг: 0 / 0
08.07.2014, 17:45
    #38690909
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
ПарамонskyANAДля чего и как?
Ну, как бэ получаем id, заранее, без фактического добавления в базу, если все ок делаем в итоге комит, если нет откат.
Понятно? )
...
Рейтинг: 0 / 0
08.07.2014, 17:50
    #38690917
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANA,

Это нет или да? )
...
Рейтинг: 0 / 0
08.07.2014, 17:51
    #38690921
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
ПарамонskyANA,

Это нет или да? )А что даст использование транзакции?
...
Рейтинг: 0 / 0
08.07.2014, 17:58
    #38690930
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAА что даст использование транзакции?
Задачу хорошо читал?
antihacker777При добавлении пользователей как получить еще не созданный ID пользователя

Таким образом мы можем получить ID пользователя, а потом думать, вносить его или нет. )
Так ясней?
...
Рейтинг: 0 / 0
08.07.2014, 17:59
    #38690933
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
А, понял. Типа вместе с пользователем добавляются ещё какие-то связанные данные в другую таблицу и тут что-то падает. Человек начинает регистрироваться заного, а такой пользователь уже есть?
...
Рейтинг: 0 / 0
08.07.2014, 18:01
    #38690939
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
ПарамонskyANAА что даст использование транзакции?
Задачу хорошо читал?
antihacker777При добавлении пользователей как получить еще не созданный ID пользователя

Таким образом мы можем получить ID пользователя, а потом думать, вносить его или нет. )
Так ясней?IDENTITY не откатываются, если чё. Так что думать вносить, или нет "еще не созданный ID" не надо
...
Рейтинг: 0 / 0
08.07.2014, 18:06
    #38690948
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAА, понял. Типа вместе с пользователем добавляются ещё какие-то связанные данные в другую таблицу и тут что-то падает. Человек начинает регистрироваться заного, а такой пользователь уже есть?
Типа того. ) Ему ведь ID полагаю не просто так понадобился. Сценарии вообщем разные бывают.
...
Рейтинг: 0 / 0
08.07.2014, 18:07
    #38690950
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация на сайте.
skyANAIDENTITY не откатываются, если чё.
Хорошо подумал? )
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регистрация на сайте. / 25 сообщений из 150, страница 1 из 6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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