首页 > 解决方案 > 如何在 C# 中执行具有多个外参数的存储过程

问题描述

CREATE PROCEDURE Proc_SelectDetails
@id int,
@Name varchar(50) out,
@RollNo varchar(50) out  
AS 
BEGIN
      set @name = (select  from table where id= @id)
      set @RollNo  = (select  from table where id= @id)

End

我不能对 sp 进行任何更改。我必须在我的 C# 代码中使用这个 sp。如果我尝试在 Dataset 的帮助下调用 sp。获取数据集为空。即使 Datareader 也为空。这是正确的调用方法,以便我将在 C# 中获得输出参数值。

标签: c#sqlasp.net

解决方案


只需创建一个连接、命令并根据需要添加您的参数 - 例如:

         using (var connection = new SqlConnection(@"connection string..."))
         {
            connection.Open();
            var command = new SqlCommand("Proc_SelectDetails", connection);
            command.CommandType = CommandType.StoredProcedure;

            command.Parameters.Add("id", SqlDbType.Int);
            command.Parameters["id"].Value = 234;

            var name = command.Parameters.Add("Name", SqlDbType.VarChar, 50);
            name.Direction = ParameterDirection.Output;

            var rollNo = command.Parameters.Add("RollNo", SqlDbType.VarChar, 50);
            rollNo.Direction = ParameterDirection.Output;

            command.ExecuteNonQuery();

            Console.WriteLine(name.Value);
            Console.WriteLine(rollNo.Value);

            }

推荐阅读