top of page

Llamar un Stored Procedure de SQL desde C#

Código simple para correr un stored procedure con una sola variable de entrada, retornando el valor en un objeto tipo "Casas",

para este caso el valor devuelto es un simple string.

Dada la clase Casas almacenada como  un MODELO MVC.

 public class Casas
    {
        public string predial { get; set; }
    }

Se construye una procedimiento para usarlo como servicio retornando un objeto tipo Casas.

public Casas GetPredial()
        {
            string usuario = "pase";
            string password = "pase";
            string server = @"miServer\CONECTIONEPC";
            string elNick = "Herradura";
            string elPredial = "";
            string initialCatalog = "empresa";

            try
            {
                using (SqlConnection con = new SqlConnection("data source =" + server + "; uid =" +
                    usuario + "; PWD =" + password + "; initial catalog = " + initialCatalog))

                {
                    con.Open();
                    SqlCommand cmd = new SqlCommand("spGetPredial", con);
//spGetPredial es el Stored procedure
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@nick", Convert.ToString(elNick))
; //@nick es la variable de entrada del STORED PROCEDURE
                    SqlDataReader dr = cmd.ExecuteReader();

                    if (dr.Read())
                    {
                        elPredial = (dr["PREDIAL"].ToString());  //PREDIAL es la columna del la base de datos
                    }
                }
                return new Casas(){  predial = elPredial   };

            }
            catch (Exception e)
            {
                return new Casas() { predial = e.Message};
            }
        }

El stored procedure es el siguiente.

USE [empresa]
GO
/****** Object:  StoredProcedure [dbo].[spGetPredial]    Script Date: 16/09/2018 10:04:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Emmanuel Pulido>
-- Create date: <15 sep 2018>
-- Description:    <Description,,>

--Example of use exec spGetPredial 'herradura'
-- =============================================

ALTER PROCEDURE [dbo].[spGetPredial]
    -- Add the parameters for the stored procedure here
@nick nvarchar(20)

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.

    SET NOCOUNT ON;

    SELECT [PREDIAL]     
      FROM [empresa].[dbo].[INMUEBLES]
      where [NICK]  like @nick

END
 

bottom of page