Mahesh2223 Ответов: 1

Хранимая процедура, возвращающая нулевое значение параметру при создании нового пользователя


У меня есть кнопка для добавления пользователя, если я нажму кнопку, появится всплывающее окно для добавления пользователя,

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

В таблице login userid имеет значение int, а не null.


Я сохранил отладчик и попробовал @userid is null..И procedre ожидает параметр @id пользователя, куда я иду неправильно ,

Любая проблема с хранимой процедурой, любые предложения по изменению моей хранимой процедуры

идеи??

предложения??

Что я уже пробовал:

ALTER PROCEDURE logins @UserId VARCHAR(50)
	,@UserName VARCHAR(100)
	,@FirstName VARCHAR(100)
	,@LastName VARCHAR(100)
	,@Email VARCHAR(200)
	,@Password VARCHAR(100)
	,@AllNames VARCHAR(max)
AS
BEGIN
	IF @UserId IS NULL
		INSERT INTO logins (
			UserName
			,FirstName
			,LastName
			,Email
			,ROLE
			,DateCreated
			,DateModified
			,Password
			,Allnames
			)
		VALUES (
			@UserName
			,@FirstName
			,@LastName
			,@Email
			,'Admin'
			,GetDate()
			,GetDate()
			,@Password
			,@allnames
			)
	ELSE
		UPDATE logins
		SET UserName = @UserName
			,FirstName = @FirstName
			,LastName = @LastName
			,AllNames = @Allnames
		WHERE UserId = @UserId
END

[no name]

идентификатор имеет тип int
UserId varchar(50)

Видите ли вы что-то неправильное в этих двух строках?
И сообщение об ошибке понятно. Вы вызываете свою хранимую процедуру и не предоставляете ожидаемый параметр User id.

Mahesh2223

Это автоматически генерирует идентификаторы на основе пользователей

Mahesh2223

У правильно я поменял на int , его работа , просто человек

ZurdoDev

"идентификатор пользователя исключения не указан в процедуре.." - это означает, что ваш код c# не отправил параметр. Нажмите кнопку улучшить вопрос и опубликуйте код c#, в котором вы вызываете эту хранимую процедуру.

farid.masood

Каков тип данных вашего столбца UserID? Я имею в виду, что вы объявляете его как VARCHAR, но каков тип в фактическом столбце?

Mahesh2223

int not null

farid.masood

Рад, что вы его починили :)

1 Ответов

Рейтинг:
4

Ramesh Kumar Barik

Set @UserId VARCHAR(50)=null.
Если UserID в целочисленном поле, то примите параметр как Int.

ЭКС:
Изменить процедуру входа @имя пользователя инт = нуль
,@UserName VARCHAR(100)
,@FirstName VARCHAR(100)
,@LastName VARCHAR(100)
,@Email VARCHAR(200)
,@Password VARCHAR(100)
,@AllNames VARCHAR (макс.)
АС
НАЧАТЬ
Если @имя пользователя имеет значение null
Вставить в логины (
имя пользователя
,свойства FirstName
,фамилия
,Электронная почта
,РОЛЬ
, Дата создания
, DateModified
,Пароль
,Все имена
)
ЦЕННОСТИ (
@имя пользователя
,@свойства FirstName
,@фамилия
,@Электронная почта
, 'Admin'
,функция GETDATE()
,функция GETDATE()
,@Пароль
,@allnames
)
ЕЩЁ
Обновление Логинов
Задайте имя пользователя = имя пользователя
,Фамилия = @Фамилия
,Фамилия = @Фамилия
, AssignedGroups = @Allnames
Где UserId = @UserId
КОНЕЦ


Mahesh2223

Спасибо чуваку, что он работает ,но Доно я хочу оценить его на 5, он не берет мой рейтинг

Ramesh Kumar Barik

Добро пожаловать, чувак.:) продолжай кодировать..