存储过程在创建新用户期间将null值返回给参数 [英] Stored procedure returning null value to parameter during creating a new user

查看:98
本文介绍了存储过程在创建新用户期间将null值返回给参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个按钮要添加用户,如果我点击按钮弹出来添加用户,



但保存时我收到异常用户ID没有提供给程序..



在表中,登录用户ID是int不为空。





我保留了一个调试器,并尝试@userid为null ..并且procedurere期待一个参数@ userid,我错了,



任何存储过程问题,任何改变我存储过程的建议



想法??



建议??



我尝试过的事情:



I have A button To add User, if i click Button a pop Up comes to add user,

But While Saving I am getting a exception user id not supplied to procedure..

In Table login userid is int not null.


I kept a debugger and tried @userid is null..And procedre is expecting a parameter @userid, where i am going wrong ,

Any stored procedre problem, any suggestions to change my stored procedre

ideas??

suggestions??

What I have tried:

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

推荐答案

设置@UserId VARCHAR(50)= null。

如果是整数字段中的UserID,则将参数作为Int。



EX:

ALTER PROCEDURE登录@UserId int = null

,@ UserName VARCHAR(100)

,@ FirstName VARCHAR(100)

,@ LastName VARCHAR(100)

,@ Email VARCHAR(200)

,@ Password VARCHAR (100)

,@ AllNames VARCHAR(最大)

AS

BEGIN

如果@UserId为空

INSERT INTO登录(

用户名

,FirstName

,LastName

,电子邮件

,角色

,DateCreated

,DateModified

,密码

,Alln ames



价值(

@UserName

,@ FirstName

, @姓名

,@电子邮件

,'管理员'

,GetDate()

,GetDate()

,@密码

,@ allnames



ELSE

UPDATE登录

SET UserName = @UserName

,FirstName = @FirstName

,LastName = @LastName

,AssignedGroups = @ Allnames

WHERE UserId = @UserId

END
Set @UserId VARCHAR(50)=null.
If UserID in an integer field then take parameter as Int.

EX:
ALTER PROCEDURE logins @UserId int = null
,@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
,AssignedGroups = @Allnames
WHERE UserId = @UserId
END


这篇关于存储过程在创建新用户期间将null值返回给参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆