SQL SERVER-获得存储过程的返回值和输出参数

ALTER PROCEDURE [dbo].[InsertRecord] 
(
    @name nvarchar(100)
)
AS
BEGIN
    
    SET NOCOUNT ON;
    insert into MyTable(name) values(@name);
    return SCOPE_IDENTITY();
END

/***************************************************************************************************/

ALTER PROCEDURE [dbo].[InsertRecord2] 
(
    @name nvarchar(100),
    @id int output

)
AS
BEGIN    
    SET NOCOUNT ON;

    insert into MyTable(name) values(@name);
    select @id =SCOPE_IDENTITY();
END

/***************************************************************************************************/

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            string connStr = "server=.;database=mytest;uid=sa;pwd=Server2012";
            using (SqlConnection con = new SqlConnection(connStr))
            {
                SqlCommand cmd = new SqlCommand("InsertRecord", con);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@name", System.Data.SqlDbType.NVarChar));
                cmd.Parameters["@name"].Value = "hahheh";

                cmd.Parameters.Add(new SqlParameter("@return", System.Data.SqlDbType.Int));
                cmd.Parameters["@return"].Direction = System.Data.ParameterDirection.ReturnValue;

                con.Open();

                cmd.ExecuteNonQuery();
                object obj = cmd.Parameters["@return"].Value;
                Console.WriteLine(obj);

                SqlCommand cmd2 = new SqlCommand("InsertRecord2", con);
                cmd2.CommandType = System.Data.CommandType.StoredProcedure;
                cmd2.Parameters.Add(new SqlParameter("@name", System.Data.SqlDbType.NVarChar));
                cmd2.Parameters["@name"].Value = "NNNNNN";
                cmd2.Parameters.Add(new SqlParameter("@id", System.Data.SqlDbType.Int));
                cmd2.Parameters["@id"].Direction = System.Data.ParameterDirection.Output;

                //con.Open();
                cmd2.ExecuteNonQuery();
                object obj2 = cmd2.Parameters["@id"].Value;
                Console.WriteLine(obj2);
            }
            Console.Read();
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/dxm809/article/details/85853229