Parameters
Los parámetros son valores que se utilizan en un comando SQL y que se reemplazan por valores específicos en tiempo de ejecución. Los parámetros se utilizan para evitar la inyección de SQL y para permitir que los comandos SQL se reutilicen con diferentes valores.
En C#, los parámetros se agregan a un comando SQL utilizando la colección Parameters
de la clase SqlCommand
. Aquí hay un ejemplo de cómo agregar parámetros a un comando SQL:
using System.Data.SqlClient;
// Crear una cadena de conexión a la base de datos
string connectionString = "Data Source=myServer;Initial Catalog=myDatabase;Integrated Security=True";
// Crear un comando SQL para seleccionar datos de una tabla
string selectQuery = "SELECT * FROM Employees WHERE LastName = @LastName";
SqlCommand command = new SqlCommand(selectQuery, new SqlConnection(connectionString));
// Agregar parámetros al comando SQL
command.Parameters.AddWithValue("@LastName", "Doe");
// Abrir la conexión y ejecutar el comando SQL
command.Connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["FirstName"] + " " + reader["LastName"]);
}
command.Connection.Close();
En este ejemplo, se utiliza un parámetro @LastName
en un comando SQL que selecciona datos de una tabla. El valor del parámetro se establece en “Doe” utilizando el método AddWithValue()
de la colección Parameters
. Después de agregar el parámetro al comando SQL, se abre la conexión a la base de datos y se ejecuta el comando SQL.
Aquí hay algunas opciones adicionales que se pueden utilizar con los parámetros:
SqlDbType
: Especifica el tipo de datos del parámetro.Size
: Especifica el tamaño del parámetro.Direction
: Especifica si el parámetro es de entrada, salida o entrada/salida.Precision
: Especifica la precisión del parámetro.Scale
: Especifica la escala del parámetro.
// Añadir parámetros con tipos y tamaños específicos
command.Parameters.Add("@nombre", SqlDbType.NVarChar, 50).Value = "Juan";
command.Parameters.Add("@edad", SqlDbType.Int).Value = 25;
command.Parameters.Add("@fechaRegistro", SqlDbType.DateTime).Value = DateTime.Now;