Store Procedure desde c#

Agradezco a quien me pueda colaborar con lo siguiente
En un proyecto que estoy haciendo me están pidiendo que desde c# haga un procedimiento almacenado
(Store Procedure) para que desde C# Pueda actualizar o modificar datos a una base de datos que se tiene
en Sql Server, tengo entendido que en Sql Server se haría algo como lo siguiente
Create procedure Modificar
As
Begin
Update Datos
set Nombre=txtNombre
Apellidos=txtApellido
Tipo_Doc=ccTipoDoc
Num_Del_Doc=txtNumDelDoc
Teléfono=txttelef
Dirección=TxtDirecc
Email=TxtEmail
Where
Num_Del_Doc=txtNumDelDoc
Vale mencionar que Datos es el nombre de la tabla que esta dentro de una base de datos que se llama
Nombre_apellido.
¿Mi pregunta es como hago para realizar este proceso en C#? Pues tengo entendido de que en Sql Server
es muy sencillo realizarlo pero como se ve en la sentencia:
where
Num_Del_Doc=txtNumDelDoc
como hago para en sql server le puede enviar como condición al campo Num_Del_Doc=txtNumDelDoc siendo que
el objeto txtNumDelDoc esta en un formulario en C# y no en sql server?. O si tengo que realizar el
procedimiento almacenado (¿Store Procedure) como lo haría?

Respuesta
1

Primero, manejar la BD en Visual Studio es complicado, nunca lo he hecho pero, se que no es el ámbito ideal.

Para pasar parámetros a un SP (Store Procedure), debes agregar una variable que recoja este o estos datos.

Estas variables se declaran antes del AS y después del Create Proc.

Tienes que especificar el nombre y el tipo de datos que recibirá (string, integer, etc)

create Procedure ScriptProcedure (@Valor varchar (9))
as

Luego debes pasar el parámetro como se define a continuación.

try
            {
                //seguimos con la conexion
                LaConexion = new SqlConnection();
                //asignamos a la conexión la cadena de conexión que declaramos anteriormente
                LaConexion.ConnectionString = cadenaconexion;
                //se abre la conexión
                LaConexion.Open();
                //se inicia la transacción
                LaTransaccion = LaConexion.BeginTransaction(System.Data.IsolationLevel.Serializable);
                //especificamos el comando, en este caso el nombre del Procedimiento Almacenado
                SqlCommand comando = new SqlCommand(“SPPersonal”, LaConexion, LaTransaccion);
                //se indica al tipo de comando que es de tipo procedimiento almacenado
                comando.CommandType = CommandType.StoredProcedure;
                //se limpian los parámetros
                comando.Parameters.Clear();
                //comenzamos a mandar cada uno de los parámetros, deben de enviarse en el
                //tipo de datos que coincida en sql server por ejemplo c# es string en sql server es varchar()
                comando.Parameters.AddWithValue(“@Nombre”, txtnombre.Text);
                comando.Parameters.AddWithValue(“@Apellp”, txtapellp.Text);
                comando.Parameters.AddWithValue(“@Apellm”, txtapellm.Text);
                comando.Parameters.AddWithValue(“@Edad”,Convert.ToInt32(txtedad.Text));
                comando.Parameters.AddWithValue(“@Sexo”, cboxsexo.SelectedItem);
                //declaramos el parámetro de retorno
                SqlParameter ValorRetorno = new SqlParameter(“@Comprobacion”, SqlDbType.Int);
                //asignamos el valor de retorno
                ValorRetorno.Direction = ParameterDirection.Output;
                comando.Parameters.Add(ValorRetorno);
                //executamos la consulta
                comando.ExecuteNonQuery();
                // traemos el valor de retorno
                Valor_Retornado = Convert.ToInt32(ValorRetorno.Value);
                //dependiendo del valor de retorno se asigna la variable success
                //si el procedimiento retorna un 1 la operación se realizó con éxito
                //de no ser así se mantiene en false y pr lo tanto falló la operación
                if (Valor_Retornado ==1)
                    success = true;
           }

En este ejemplo son muchos parámetros, tu puedes usar tantos como necesites.

En el siguiente link tienes el ejemplo completo y también como manejar datos salientes, es decir datos output

https://uitoarellanojosehugoarellanoperez.wordpress.com/category/ejecutar-store-procedure-desde-c/ 

.

Si tienes alguna duda me lo haces saber.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas