![]() |
|
Модераторы: gambit |
![]()
|
|
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Вот я добавляю строку и мне нужно узнать её id
как это сделать? |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
а куда добавляешь?
есть такая штука как @@IDENTITY (Transact-SQL), но она вроде толь в mssql(вроде). другой вариант мне кажется это сначала вставить строку и сразу же выбрать наибольший id(или найти его по вставленным данным) все это как одну транзакцию оформить. Это сообщение отредактировал(а) Экскалупатор - 14.8.2010, 20:04 |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
DenWPF, зависит от используемой СУБД.
-------------------- Слава Україні! |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ой я не уточнил. я не использую субд я работаю через C#.
Пока для меня единтсвенный вариант: 1. отправляю запрос на добавление (логин пароль) 2. ищу в таблице этот логин и вытягиваю id вариант "сначала вставить строку и сразу же выбрать наибольший id" - не подходит, в этот момент кто то другой тоже может добавить строку. |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
С чем? С БД не так ли? Вполне себе вариант.
Экскалупатор это тоже понимает и по этому предлагает А вообще самый правильный вариант - воспользоваться средствами СУБД (ну не верю я, что СУБД не используется при работе с БД При работе с БД из клиентского приложения используется драйвер БД, который "транслирует" запросы от приложения к СУБД, а СУБД выполняет запрос к БД. Обратно результат возвращается в таком же порядке - БД -> СУБД -> драйвер -> приложение. Тот факт, что наличие драйвера СУБД и самой СУБД не очевиден может свидетельствовать о том, что в качестве СУБД используется MS SQL Server, а если это действительно так, то Экскалупатор дал самый верный ответ -------------------- Слава Україні! |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 8 Всего: 118 |
@@IDENTITY неверный ответ. SCOPE_IDENTITY верный.
Это сообщение отредактировал(а) jonie - 15.8.2010, 12:46 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
jonie, не знал такого - спасибо за информацию!
-------------------- Слава Україні! |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
спасибо.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 8 Всего: 118 |
DenWPF, мы вам потом расскажем про sql-injection и функции вроде quotename , ну и про параметры не забудем, наверно.. я уже молчу про то что ToString() будет вызван автоматически..
Это сообщение отредактировал(а) jonie - 15.8.2010, 23:52 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
DenWPF,
jonie правильно говорит, добавляй значение в таблицу используя параметры, к примеру:
-------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
спасибо, а так как то можно?
ах да, там не : а @ а если я использую using мне надо где то конект закрывать ? Это сообщение отредактировал(а) DenWPF - 16.8.2010, 01:11 |
|||
|
||||
| Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
DenWPF, можно, только брать значения напрямую из textbox'ов, не лучший вариант, т.к. значения возможно надо проверить на валидность введенных данных и прочее, сделай класс например отвечающий за действия с User'ами, там метод где будет этот код (в метод например будеш передавать значения из textbox'ов, проверять правильность введенных данных и т.д.) и с ним уже работай
нет -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ок. я так обычно и делаю, просто это для наглядности. значит таким образом я спасаюсь от sql инъекций?
|
|||
|
||||
| Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
DenWPF, по информации из книги "Язык программирования С# 2005 и платформа .NET 2.0" - да, спасаешься
-------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
а 2010 думаю уже нет=)
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |