//metodo que nos devuelve una tabla con las noticias paginadas
public DataTable obtenerNoticiasPaginadas(Int32 numeroPagina, String palabra, DateTime fechaInicio, DateTime fechaFin)
{
try
{
String strSql = "SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY fecha DESC) AS RowNumber FROM noticias WHERE (titular LIKE '%@palabra%' OR cuerpo LIKE '%@palabra%') AND fecha BETWEEN @fechaInicio AND @fechaFin) AS noticias WHERE RowNumber BETWEEN (@tamanoPagina * @numeroPagina + 1 - @tamanoPagina) AND (@tamanoPagina * (@numeroPagina + 1) - @tamanoPagina)";
SqlCommand comando = new SqlCommand(strSql, conexion);
comando.Parameters.AddWithValue("@tamanoPagina", Int32.Parse(ConfigurationManager.AppSettings["paginadoNoticias"]));
comando.Parameters.AddWithValue("@numeroPagina", numeroPagina);
comando.Parameters.AddWithValue("@palabra", palabra);
comando.Parameters.AddWithValue("@fechaInicio", fechaInicio);
comando.Parameters.AddWithValue("@fechaFin", fechaFin);
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataTable tablaNoticias = new DataTable("Noticias");
conexion.Open();
adaptador.Fill(tablaNoticias);
conexion.Close();
return tablaNoticias;
}
catch (Exception exc)
{
conexion.Close();
throw exc;
}
}