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;