miércoles, 30 de abril de 2014

Moneda de 30 de Euros de España de 2014

España. 30 euros 2014 “IV Centenario de El Greco”

La moneda de 30 euros de este año 2014 estará dedicada al “IV Centenario de El Greco”. Como sabéis esta es la moneda que se puede conseguir a su valor facial en los Bancos de España y en algunos bancos y cajas de ahorros. Se espera que sea emitida el 7 de abril.
La imagen que se ve abajo, es
una imagen real de la moneda.


Fuente: http://www.numismatica-visual.es/2014/01/espana-30-euros-2014-iv-centenario-de-el-greco/

martes, 29 de abril de 2014

Error "El código de usuario no controló EntityCommandExecutionException" usando EntityFrameWork y linq

Si estamos en modo de depuración desde el IDE tendremos una ventana como ésta:

Lo primero es identificar la excepción de forma correcta. Para ello le damos a Ver detalle...

Y una vez dentro del detalle desplegamos la Excepción para consultar la propiedad "InnerExcepcion" que es la excepcion interna y nos devuelve mas información.



La ventana donde veremos la excepion interna tiene esta apariencia:

En nuestro ejemplo estamos trabajando con sentencias linq y lo que sucede es que tardan "demasiado tiempo" por el volumen de datos manejado y como medida de protección el tiempo de duración está limitado para evitar problemas de estabilidad en el sistema.
Si queremos permitirlo debemos de establecer el siguiente comando sobre nuestro objecto del contexto (llamado en este ejemplo Micontext)

((System.Data.Entity.Infrastructure.IObjectContextAdapter) Micontext).ObjectContext.CommandTimeout

de modo que el código quedaría algo así ....

cloudEntities Micontext= new cloudEntities();
((System.Data.Entity.Infrastructure.IObjectContextAdapter) Micontext).ObjectContext.CommandTimeout = 0;

var Consulta = from g in Micontext.MiTabla
               select new{g.campo1, g.campo2}

Comando extraido de la fuente:
http://stackoverflow.com/questions/11747368/set-command-timeout-in-entity-framework-4-3

lunes, 28 de abril de 2014

Consulta condicional en el Where LinQ c#

Desarrollando una aplicacion en ASP.NET con c# y LinQ tenía que devolver una consulta con las ventas en un rango de fechas determinado y poder filtrar por las ventas en ese rango para un articulo en concreto exclusivamente. La información se mostraría filtrada o no por artículo atendiendo a si se rellenaba un control de tipo TextBox con el codigo del articulo que quisieramos filtrar.

¿Como hacemos eso?

Pues bien la sintaxis para conseguirlo es con un "if" dentro del Where

de modo que se escribiría así:

from g in cloudModel.lineasTickets
join f in cloudModel.articulos on g.codigoBarras equals f.codigoBarras
where g.fecha >= Calendar1.SelectedDate && g.fecha <= Calendar2.SelectedDate
&& (txtDesdeArticulo.Text != "" ? f.codigo == txtDesdeArticulo.Text : 1 == 1) 

Se indica que si el control tiene datos filtre el campo codigo por el valor escrito y en otro caso 1=1 es como decir no hagas nada. Una condicion siempre true. 

Espero que os ayude. Xiaoo

jueves, 24 de abril de 2014

como filtrar en el Where de una consulta Linq c# entre 2 fechas

Estaba intentando realizar una consulta que me devolviese las ventas de una fecha concreto y para ello necesitaba filtrar los datos de la tabla entre dichas fechas. Si utilizaba la sintaxis: DateTime.Now.AddDays( 7)  el compilador me lanzaba un error indicando:

LINQ to Entities no reconoce el método 'System.DateTime AddDays(Double)' del método, y este método no se puede traducir en una expresión de almacén.

la solución consiste en cambiar dicha función por: System.Data.Objects.EntityFunctions.AddDays(DateTime.Now, 7)

de modo que el resultado seria algo así:

 var consulta = from g in cloudModel.lineasTickets
                                   where (g.fecha <= DateTime.Now && g.fecha >= System.Data.Objects.EntityFunctions.AddDays(DateTime.Now, -15))

en lugar de

 var consulta = from g in cloudModel.lineasTickets
                                   where (g.fecha <= DateTime.Now && g.fecha >= DateTime.Now.AddDays(-15))

Fuente: http://social.msdn.microsoft.com/Forums/en-US/78079cf0-7b77-4e8a-abc0-b47538caac19/adding-days-to-datetime-field-inside-linq-where-clause?forum=linqtosql

martes, 22 de abril de 2014

¿Y la culpa es de los españolitos que han vivido por encima de sus posibilidades? ¡¡JUECES AL PODER!!

El 9 de febrero de 2012, el Tribunal Supremo condenó92 3 a Baltasar Garzón por prevaricación de forma unánime por las escuchas ilegales durante la investigación del caso Gürtel con la pena de «11 años de inhabilitación especial para el cargo de juez o magistrado con pérdida definitiva del cargo que ostenta»

Despues se pone en tela de juicio al juez castro por intentar llamar a declarar a miembros de la casa real ¿Cómo se le puede pasar eso por la cabeza?¡¡Qué desfachatez!!, también la jueza Alaya es punto de mira de los políticos de nuestro país por intentar citar a Chavez y Griñan en su trabajo mediante una citación ¡¡La jueza se está extralimitando!! y ahora sientan en el banquillo al juez Silva por el caso Blesa.. esta es la España que tenemos, la España del listo, del amigueo, del encubridor, del hoy por ti mañana por mí y la culpa es de los españolitos que hemos vivido por encima de nuestras posibilidades. Esperemos que nuestros jueces, honrados, independientes, con gran sentido de la justicia y sobre todo con muchas ganas de hacer bien su trabajo sean capaz de batallar con estos sinvergüenzas muy bien asesorados, que están destruyendo España. ¡¡JUECES AL PODER!! confiamos en vosotros y sois los únicos que podréis librarnos del mal. Amén.

miércoles, 16 de abril de 2014

Aplicacion para "jugar" en la bolsa REAL pero con dinero FICTICIO

Para los que alguna vez habeis pensado jugar en bolsa pero no os atreveis a dar el paso aquí viene trading212:

https://www.trading212.com/en/login/

es una aplicacion web que permite "jugar" a la bolsa con una cuenta DEMO pero con los valores reales. Nos dan 10.000 Euros ficticios para comenzar a probar y en cualquier momento podemos resetear la cuenta y empezar de nuevo. Si nos animamos y quereis probar con dinero real podeis pasar a una cuenta real en cualquier momento. Por lo demás es totalmente gratuito en la version DEMO.

Ademas dipone de versiones para moviles.

¿Serás un buen broker?


martes, 15 de abril de 2014

Calcular tu codigo IBAN Online Gratis

Conoce tu numero de IBAN en el momento, sin esperas ni solicitar nada.

  http://jesusmgcia.blogspot.com.es/p/blog-page_15.html

Es una sencilla aplicacion web que calcula tu numero IBAN partiendo de un codigo CCC

viernes, 11 de abril de 2014

TSQL Devolver parte de una cadena en SQL SERVER, Concatenar y casting o conversiones

Con la funcion SUBSTRING podemos devolver parte de una cadena de un valor almacenado en nuestra Base de datos. Por ejemplo supongamos que tenemos una tabla de clientes con las columnas: Nombre, Apellido1, Apellido2 y queremos devolver una cadena con el nombre y apellidos pero queremos devolver como maximo 40 caracteres. Pues utilizamos el operador + para concatenar los valores cadenas de cada columna. 

Quedaría algo asi: 

select SUBSTRING(nombre + ' ' + apellido1 + ' ' + apellido2, 1, 40)
from clientes


Notas: 

Utilizamos la construcción + ' ' + para que no queden "pegados" el nombre y cada apellido. Introducimos un espacio. De toda la cadena concatenada devolvemos empezando por el caracter 1 los primeros 40 caracteres. Es como se leería el ejemplo. 

Nota Bis:

En caso que tengamos una columna de tipo distinto a cadena tendriamos que hacer un casting o conversión al tipo string. Ejemplo: 

Supongamos que tenemos el campo EDAD de tipo entero. Pues lo convertimos a cadena con tamaño maximo de 15 caracteres con la construcción: cast(FLAG as varchar(15)). La sintaxis quedaría así. 

select nombre + ' ' + cast(EDAD as varchar(15))
FROM CLIENTES

A esto podriamos aplicarle el SUBTRING


select SUBSTRING (nombre + ' ' + cast(EDAD as varchar(15)), 1, 40)
FROM CLIENTES


Si no hicieramos el casting tendriamos un error algo así como: 
Error de conversión al convertir el valor varchar ...



Espero que os haya ayudado. Saludos.

jueves, 10 de abril de 2014

alinear un DIV o capa en la parte inferior (bottom) de otro

He desarrollado un pequeño ejemplo de como realizar una alineación inferior de una capa con CSS y sin utilizar atributos vertical-align.

el codigo sería este:


<html>
<head>
<title>http://jesusmgcia.blogspot.com.es/</title>

<style>
body{
margin: 0px;
background: #dddddd;
}

.capaPrincipal{
float: left;
position: relative;
width: 100%;
height: 200px;
padding: 0px;
background: #12345F;
font-size: 48px;
color:#ffffff;
}

.pie{
position: absolute;
bottom: 0;
left: 0;
width: 100%;
min-width: 1020px;
height: auto;
padding: 0px;
background: #FF7869;
font-size: 18px;
color:#000000;
}


</style>
</head>

<body>
<div class="capaPrincipal">
Capa principal - <a HREF="http://jesusmgcia.blogspot.com.es/">http://jesusmgcia.blogspot.com.es/</a>
<div class="pie">Aqui pintaremos la informacion que se alineara en la parte de abajo de la capa principal</div>
</div>


</body>

</html>
Copiar el codigo de arriba en un fichero .HTML para ver el resultado

</body>

</html>


miércoles, 2 de abril de 2014

System.Web.HttpException: Error al ejecutar la solicitud secundaria para ChartImg.axd.

Al Ejecutar mi aplicacion web en ASP.Net C# obtenía el siguiente error

Error al ejecutar la solicitud secundaria para ChartImg.axd.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Web.HttpException: Error al ejecutar la solicitud secundaria para ChartImg.axd.

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:


[HttpException (0x80004005): Error al ejecutar la solicitud secundaria 
para ChartImg.axd.]
...


Información de versión: Versión de Microsoft .NET Framework:4.0.30319; Versión ASP.NET:4.0.30319.18446




Solucion

La solución es editar el web.config y añadir las siguientes lineas. En mi caso añadi estas lineas y me funcionó correctamente.

<configuration>
....

  <appSettings>

    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=C:\inetpub\wwwroot\WebApplication11\TempImageFiles;" />
  </appSettings>

NOTA: DAR PERMISOS AL DIRECTORIO QUE PONGAMOS EN DIR. ES DONDE SE GENERARÁN LAS IMAGENES DE NUESTRAS GRAFICAS.
...
<system.web>
    <httpHandlers>
           .....
        <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        validate="false" />
    </httpHandlers>

      <pages>

      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
          assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </controls>
    </pages>

 </system.web>

  <system.webServer>
<handlers accessPolicy="Read, Execute, Script">
....
<remove name="ChartImageHandler" />

<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"

path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>

...
</configuration>




Fuente: http://moreliadevpros.wordpress.com/2009/04/20/error-al-ejecutar-la-solicitud-secundaria-para-chartimgaxd/

martes, 1 de abril de 2014

Red social para coleccionistas de monedas. Numismática

Estoy desarrollando un proyecto para los que nos gusta la colección de monedas. Es una red social que nos permite facilmente organizar nuestra colección, compartir las monedas repetidas, buscar en otros usuarios las que nos interesen... está en fase de pruebas y aun solo estan dado de alta las monedas de Euros 8 valores de cada pais. Conmemorativas de 2 Euros, Españolas de Estado Español y juan carlos. Pero es un buen arranque si coleccionais alguna o varias de este tipo. Espero que colaboreis y juntos poblemos y mejoremos esta red.
Actualmente tiene una biblioteca de casi 400 monedas y puedes probar con una cuenta demo sin tener que solicitar registro. Os dejo el enlace:

Crear un grid y rellenarlo en ASP .NET c#

Vamos a seguir un ejemplo simple para crear dinamicamente un grid y rellernalo con los datos que queramos.

¿Como conseguir esta estructura en ASP c#?

En la parte visual ponemos un control GridView => GridView1

En el código creamos un DataSet con el contenido del ejemplo y lo asociaremos al objeto GridView1.

En este codigo extraido de, 

http://social.msdn.microsoft.com/Forums/es-ES/700723b0-3fcc-4ae1-855d-b2de873abdac/como-crear-y-llenar-un-dataset-manualmente-en-c?forum=vcses

vemos el ejemplo de como crear un dataset de dos columnas y una fila con el contenido '1' para la coordenada (1,1) y el contenido '2' para la coordenada (1,2) de nuestra matriz. Aplicando esta misma idea conseguimos nuestro ejemplo de arriba, que sería una caso un poco mas avanzado de este  ejemplo pequeñito:


            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            ds.Tables.Add(dt);
            dt.Columns.Add("Columna1", typeof(string));
            dt.Columns.Add("Columna2", typeof(string));
            dt.Rows.Add('1', '2');

            GridView1.DataSource = ds;
            GridView1.DataBind();

con este ejemplo conseguimos una estructura:

columna 1    column 2
1                  2


Aplicando este mismo concepto podemos crear ejemplos mas complejos: supongamos que tenemos una base de datos (BD en adelante) con información de varios almacenes nuestros (almacen 1, almacen 2...) y queremos mostrar las ventas de cada almacen por cada mes para compararlas y totales de modo que podamos sacar información comercial interesante. Buscamos una estructura como esta:


DATOS ENE FEB MAR ABR MAY JUN JUL AGO SEP OCT NOV DIC TOTAL
ALM 1    5       10     3        4       5       6      7       8      2       1      2        3        56  (5+10+3+4...)

ALM 2    3       22     1        4       9       8      3       7      4       2      1        0        64  (3+22+1+4...)
TOTAL   8       32     4        8      14     14    10      15    6       3      3        3        120   


Para construir esta información obtendriamos de la BD los almacenes en el ejemplo: ALM 1, ALM 2 para cada uno de ellos obtendriamos sus ventas por mes. Ejemplo: Alm 1 en Ene vendió 5 unidades, Alm 2 en Febrero vendió 22 unidades. al final de cada fila tenemos el total de ventas por almacen y al final de cada columna el total de ventas por mes. 

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...