【问题标题】:SQL Server stored procedure after insert row return string value of column data truncated插入行返回字符串值的列数据被截断后的 SQL Server 存储过程
【发布时间】:2017-11-29 02:24:21
【问题描述】:

我一直试图在插入后返回字符串值,但是我的数据总是被截断。它只返回字符串的第一个字符。

我的存储过程:

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 时,我只会得到第一个字符

谢谢

【问题讨论】:

    标签: c# sql sql-server


    【解决方案1】:

    需要指定大小才能获取整个字符串

    cmd.Parameters.Add(new SqlParameter("@userID", SqlDbType.NVarChar, 50));
    cmd.Parameters["@userID"].Direction = ParameterDirection.Output;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多