我一直试图在插入后返回字符串值但是我的数据总是被截断。它只返回字符串的第一个字符。
我的存储过程:
ALTER PROC [dbo].[usp_add_user]
(@firstName nvarchar(50),
@lastName nvarchar(50),
@email nvarchar(100),
@password nvarchar(100),
@userID nvarchar(50) OUTPUT)
AS
BEGIN
SET @userID = newid()
INSERT INTO [User] ([UserID], [FirstName], [LastName], [Email], [Password])
VALUES (@userID, @firstName, @lastName, @email, @password)
SELECT @userID;
END
我的C#我是如何抓住价值的
access.Parameter["@userID"].Value.ToString();
当我在SQL Server Management Studio中执行存储过程时,它会正确显示所有内容,@userID
是正确的。但是当它回到我的Visual Studio时,我只得到第一个字符
谢谢
答案 0 :(得分:1)
您需要指定大小以获取整个字符串
cmd.Parameters.Add(new SqlParameter("@userID", SqlDbType.NVarChar, 50));
cmd.Parameters["@userID"].Direction = ParameterDirection.Output;