Para un momento dado si necesitamos lanzar una consulta por código podrías hacerlo mediante un Sql DataReader.
1 2 3 4 5 6 7 8 9 10 11 12 |
private static SqlDataReader ObtenerDatos(SqlConnection cnx) { string sql = "SELECT FechaHora,Nombre "+ "FROM TablaMia " "WHERE(condiciones..) "; var miComando = new SqlCommand(sql, cnx); if (cnx.State != ConnectionState.Open) cnx.Open(); return miComando.ExecuteReader(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
static void Main(string[] args) { var miConexion = new SqlConnection(); miConexion.ConnectionString = ConfigurationManager.ConnectionStrings["connexionSqlServer"].ConnectionString; try { var lector=ObtenerDatos(miConexion); if (lector.HasRows) { while (lector.Read()) { var fecha= lector["FechaHora"]; var nombre=lector["Nombre"]; } } } if (miConexion.State != ConnectionState.Closed) miConexion.Close(); } catch (Exception ex) { } } |
Aquí pongo otro ejemplo de como ejecutarla de forma Asíncrona.
El Main asíncrono esta soportado en C# 7
1 2 3 4 5 6 7 8 |
static async Task Main(string[] args) { var miConexion = new SqlConnection() { ConnectionString = ConfigurationManager.ConnectionStrings["connexionSqlServer"].ConnectionString }; var texto = await ObtenerDatos(miConexion); } |
Función utilizando el ExecuteReaderAsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
private static async Task<String> ObtenerDatos(SqlConnection cnx) { var sql = "SELECT FechaHora,Nombre FROM TablaMia WHERE(condiciones..) "; var miComando = new SqlCommand(sql, cnx); if (cnx.State != System.Data.ConnectionState.Open) cnx.Open(); using (var lector = await miComando.ExecuteReaderAsync()) { while (await lector.ReadAsync()) { sb.AppendLine(lector[0].ToString()); } lector.Close(); } return sb.ToString(); } |