从存储过程的结果中提取两个字符串到字符串。

问题描述 投票:-1回答:1

[学校工作]

我有一个存储过程。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [IO].[usp_selectUser] (@username varchar(50))
AS
BEGIN
    SELECT passwordSalt, hashedPassword
    FROM [IO].[Users]
    WHERE username = @username;
END

而在我的C#程序中,我需要得到的是 passwordSalthashedPassword 其中用户名匹配。

当前的C#代码

SqlCommand command = new SqlCommand("[IO].[usp_selectUser]", con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@username", SqlDbType.VarChar)).Value = username;

我试过谷歌搜索结果中的一些东西,但没有一个工作正常。如何得到两个独立的字符串?

c# sql sql-server stored-procedures sqlcommand
1个回答
0
投票

一个朋友解决了我的问题。存储过程没有标记参数作为输出。

 USE [TICKETING_DB]
    GO
    /****** Object:  StoredProcedure [IO].[usp_selectUser]    Script Date: 5/4/2020 11:08:10 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [IO].[usp_selectUser] (@username varchar(50), @passwordSalt varchar(50) output, @hashedPassword varchar(100) output)
    AS
    BEGIN
    SELECT @passwordSalt = passwordSalt, @hashedPassword = hashedPassword FROM [IO].[Users]
    WHERE username = @username;

    END
© www.soinside.com 2019 - 2024. All rights reserved.