C#

Utilizando la Biblioteca SqlHelper (2/n)


Ejecutar consulta y llenar un DataReader:

Para llevar a cabo la ejecución de una consulta y rellenar un DataReader, disponemos de los siguientes métodos:

Screen Shot 03-19-16 at 12.14 PM

En esta demostración, utilizaremos el método:

public static System.Data.SqlClient.SqlDataReader ExecuteReader(string connectionString, System.Data.CommandType commandType, string commandText)

Podemos observar, que se nos pide como primer parámetro una cadena de conexión, como segundo el tipo de comando (si es consulta normal o un stored procedure), y como tercer, la consulta como tal.

En primer lugar, definiremos en una variable la consulta que deseamos ejecutar:

[sourcecode language=”csharp”]
var sqlQuery = "SELECT * FROM Customers";
[/sourcecode]

En segundo lugar, llamaremos al método que nos interesa, pasándole como referencia la cadena de conexión que definimos en el post anterior, seguido por el tipo de enumeración que deseamos aplicar, y la consulta definida previamente. Cabe destacar, que utilizaremos un using para cerrar la conexión y eliminar la instancia una vez que la dejemos de utilizar:

[sourcecode language=”csharp”]
using (var newDataReader = SqlHelper.ExecuteReader(
GlobalData.ConnectionString,
CommandType.Text, sqlQuery))
[/sourcecode]

Por último, haremos un recorrido por el datareader e imprimiremos la información deseada:

[sourcecode language=”csharp”]
while (newDataReader.Read())
{
var customerInfo = string.Format(
"Company Name: {0}, ContactName: {1}",
newDataReader.GetString(1),
newDataReader.GetString(2));
Debug.WriteLine(customerInfo);
}
[/sourcecode]

Quedando el código completo del método, de la siguiente manera:

[sourcecode language=”csharp”]
private void StartDataReaderDemo()
{
//Utilizando SqlHelper para llenar un DataReader
var sqlQuery = "SELECT * FROM Customers";
using (var newDataReader = SqlHelper.ExecuteReader(
GlobalData.ConnectionString,
CommandType.Text, sqlQuery))
{
while (newDataReader.Read())
{
var customerInfo = string.Format(
"Company Name: {0}, ContactName: {1}",
newDataReader.GetString(1),
newDataReader.GetString(2));
Debug.WriteLine(customerInfo);
}
}

}
[/sourcecode]

Ejecutar consulta a un Stored Procedure y llenar un DataReader:

La forma para llevar a cabo una consulta a un procedimiento almacenado, conlleva básicamente los mismos pasos que anteriormente, con la diferencia, que debemos especificar el nombre del procedimiento almacenado en lugar de la consulta:

[sourcecode language=”csharp”]
var sqlQuery = "Sales by Year";
[/sourcecode]

En segundo lugar, debemos definir un arreglo de tipo SqlParameter, definiendo los parámetros que deseamos pasar:

[sourcecode language=”csharp”]
var param1 = new SqlParameter {ParameterName = "@Beginning_Date", Value = new DateTime(1995, 1, 1) };
var param2 = new SqlParameter { ParameterName = "@Ending_Date", Value = new DateTime(1997, 1, 1)};
SqlParameter[] parameters = new[] {param1, param2};
[/sourcecode]

Lo demás, es prácticamente lo mismo, el código completo del método se encuentra a continuación:

[sourcecode language=”csharp”]
private void StartDataReaderDemo2()
{
//Utilizando SqlHelper para llenar un DataReader a través de un stored procedure
var sqlQuery = "Sales by Year";
var param1 = new SqlParameter {ParameterName = "@Beginning_Date", Value = new DateTime(1995, 1, 1)};
var param2 = new SqlParameter {ParameterName = "@Ending_Date", Value = new DateTime(1997, 1, 1)};
SqlParameter[] parameters = new[] {param1, param2};
using (var newDataReader = SqlHelper.ExecuteReader(
GlobalData.ConnectionString,
CommandType.StoredProcedure, sqlQuery, parameters))
{
while (newDataReader.Read())
{
var customerInfo = string.Format(
"Order ID: {0}, Subtotal{1}",
newDataReader.GetInt32(1),
newDataReader.GetDecimal(2));
Debug.WriteLine(customerInfo);
}
}
}
[/sourcecode]

Recetas
Xamarin.Forms – Personalizando un NavigationPage
There are currently no comments.