Posts recientes

El contenido de este blog tiene una licencia Creative Commons.
Creative Commons

Solucionar problema con la intercalación desde linq

En caso de necesitar realitzar búsquedas contra el motor de base de datos sin tener en consideración mayúsculas/minusculas, acentos y otros símbolos de puntuación, desde SQL Server es necesario que la base de datos use una intercalación *_CI_AI
Pero aunque la base de datos esté bien configurada para que las consultas sean no sensitivas a este tipo de carácteres, si se realiza la consulta desde nuestra aplicación la consulta no será efectiva puesto que desde linq no se explota la facilidad que nos ofrece la base de datos.
Para solucionar esto hay un método que es el que muestro en el siguiente código:
string ntext = new string("TEXTO_A_BUSCAR".Normalize(NormalizationForm.FormD).Where(c => c < 128).ToArray());
Lista = Lista.Where(x => (UTF8Encoding.UTF8.GetString(UTF8Encoding.GetEncoding("ISO-8859-8").GetBytes(x.CAMPO_BD)).IndexOf(ntext, StringComparison.InvariantCultureIgnoreCase) > -1)).ToList();

En la primera instrucción normalizamos el texto a localizar en la base de datos, y en la segunda se realiza la búsqueda en sí misma sobre el campo de la base de datos con el cual deseamos hacer el filtro.

Espero que os sirva de ayuda.

Autor: David Acosta Lesmes
Publicado: 03/02/2012  14:43 | 0  Comentarios | 0  Enlaces a este post

Error en el diseño de formularios: 'child' is not a child of this parent

Si alguna vez estáis en el desarrollo de un proyecto, y mientras estáis diseñando una página os aparece de buenas a primeras el error:  << 'child' is not a child of this parent >>, y no os deja acceder al diseño del fórmulario lo que deberíais hacer es acceder al "Designer" del formulario y dentro del procedimiento InitializeComponent() localizar la definición del formulario y añadir una línea por cada control existente en el formulario que tenga la siguiente estructura:

this.Controls.Add(this.myControlName);

Con esta sencilla instrucción para cada uno de los controles existentes solventaréis el error y podréis seguir trabajando con el formulario que se había corrompido.
Autor: David Acosta Lesmes
Publicado: 23/09/2010  9:24 | 0  Comentarios | 0  Enlaces a este post

Zeta Resource Editor: Edita tus ficheros de recursos .NET en paralelo

Zeta Resource Editor es una aplicación gratuita que te permite editar múltiples ficheros de recursos de Microsoft .NET en un simple grid.

Esta forma de representar la información de los ficheros de recursos nos simplifica las traducciones de textos a los distintos idiomas de forma muy sencilla e intuitiva, a la vez que incorpora un gestor de archivos de recursos bastante completo.

Aunque en su versión 2 todavía está en inglés y alemán, su intuitiva interfaz de usuario te permite trabajar aunque no domines estos idiomas y seguro que también guarda alguna que otra sorpresa.

Podéis descargarla desde su web: http://www.zeta-resource-editor.com/.

Autor: Emilio Martín
Publicado: 12/05/2010  13:14 | 0  Comentarios | 0  Enlaces a este post

RS232 Connection from VBScript

A partir del VS2005 hay un COM integrado en el sistema que nos permite trabajar con los puertos serie, así pues este ejemplo lo que hace es explotar las posibilidades de este COM para nuestro objetivo que en este momento se trata de recibir datos a través del RS232.
 
' VBScript File

Function StartComPort()
    ' Se crea el objecto MSComm que realizará la conexión con el puerto
    Dim MSComm1
    Set MSComm1 = CreateObject("MSCOMMLib.MSComm")
    ' Configuración de la conexión: 4800 Bauds, Parity None, DataBits 8, StopBits 1
    MSComm1.Settings = "4800,n,8,1"
    ' Se localiza y se abre el puerto
    Dim i
    i = 1
    Do While i<=10
        MSComm1.CommPort = i
        MSComm1.InBufferCount = 0
        MSComm1.PortOpen = True
        If Err Then
            MSComm1.PortOpen = False
            i = i + 1
        Else
            i = 11
        End If
    Loop
    
    If (MSComm1.PortOpen = True) Then
        ' Variable donde se guarda el valor que nos facilita el RS232
        Dim Buffer 
        Buffer = ""
        ' Quedamos a la espera del valor del RS232
        Do
            Buffer = Buffer & MSComm1.Input
        Loop Until InStr(Buffer, vbCrLf)
        ' Se cierra el puerto
        MSComm1.PortOpen = False
        ' Se libera la memoria
        Set MSComm1 = Nothing
        ' Valor del RS232
        StartComPort = Buffer
    Else
        StartComPort = ""
    End If
End Function
 
Espero os sirva de ayuda.
Autor: David Acosta Lesmes
Publicado: 20/04/2010  17:57 | 0  Comentarios | 0  Enlaces a este post

Bloqueo del debugger de VS 2005 con IE8

Si tiene abiertas varias instancias de IE8 e intenta depurar un proyecto se encontrará con que el debugger de VS no se detiene (hace caso omiso de los puntos de interrupción introducidos).
Resulta que IE8 se ejecuta a través de diferentes procesos. Los debuggers anteriores se confunden y no saben a qué proceso asociarse.
Para solucionarlo ejecute los siguientes pasos:
1. Abra RegEdit
2. Vaya a HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main
RegEdit
3. Añada un valor DWORD llamado TabProcGrowth con valor 0
DWORD
4. Desactive el modo protegido en la seguridad del IE8 (en las Opciones de Internet)
Autor: Anna Vilalta Gili
Publicado: 04/12/2009  13:06 | 0  Comentarios | 0  Enlaces a este post