1
我有一個按鈕來添加用戶,如果我點擊該按鈕,彈出顯示添加用戶,但保存時,我得到一個異常,用戶ID是沒有提供給存儲過程。存儲過程在創建新用戶期間返回空值到參數
表中登錄用戶標識爲int not null
。
我保留了一個調試器,並試圖@userid
爲空。並且程序期待參數@userid
;我哪裏錯了?
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,
AssignedGroups = @Allnames
Where
UserId = @UserId
End
任何存儲過程的問題,有什麼建議改變我的存儲過程
想法?
意見建議??
您沒有顯示調用過程的代碼。 – Dai
另請參見:1. **從不將密碼存儲爲數據庫中的明文!** - 存儲鹽漬散列。 2.使用'MERGE'(「upsert」)而不是'IF ... INSERT ELSE UPDATE',因爲它是一個單獨的原子語句。 3.你的'UPDATE'語句不會更新'DateModified'值。 4.如果你正在存儲人類可讀的文本,你應該使用'nvarchar'而不是'varchar'來支持Unicode(http://dba.stackexchange.com/questions/139551/how-do-i-set-a- sql-server-unicode -nvarchar-string-to-an-emoji-or-supplementary) - 例如,你不能在'varchar'列中存儲表情符號。 – Dai
錯誤與調用SP而不是SP的c#代碼有關。顯示該代碼。 – CodingYoshi