Ejecutar una consulta parametrizada

2218 vistas

Es posible pasar parámetros a una consulta SQL. Veamos un ejemplo con SQL Server:



csharp
  1. using System.Data.SqlClient;
  2. using System.Data;
  3.  
  4. // cadena de conexión
  5. string connectString = "database=test_paresco;server=am01;User ID=BACK;pwd=xxxxxx";
  6. // objeto connection
  7. SqlConnection connection = new SqlConnection(connectString);
  8. // obertura
  9. connection.Open();
  10. // objeto Command
  11. SqlCommand command = new SqlCommand("SELECT * FROM usr_contract WHERE " +
  12.                                   "ctr_ref = @contract AND ctr_exg_ref = @exg",
  13.                                   connection);
  14. // parámetros
  15. command.Parameters.Add(new SqlParameter("@contract", SqlDbType.VarChar, 5));
  16. command.Parameters["@contract"].Value = "FTE";
  17. command.Parameters.Add(new SqlParameter("@exg", SqlDbType.VarChar, 8));
  18. command.Parameters["@exg"].Value = "SBF";
  19. // objeto datareader
  20. SqlDataReader reader = command.ExecuteReader();
  21. Object[] row = null;
  22. while (reader.Read())
  23. {
  24.     if (row == null)
  25.         row = new Object[reader.FieldCount];
  26.     reader.GetValues(row);
  27.     for (int i=0; i<row.GetLength(0); i++)
  28.     {
  29.         if (row[i] != DBNull.Value)
  30.             Console.Write(row[i]);
  31.         else
  32.             Console.Write("NULL");
  33.         if (i<row.GetUpperBound(0))
  34.             Console.Write("|");
  35.     }
  36.     Console.WriteLine();
  37. }
  38. // cerramos reader
  39. reader.Close();
  40. // cerramos base de datos
  41. connection.Close();