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.