sábado, 22 de junio de 2019

Validación de formularios utilizando los eventos del teclado (Key Validator) aspx c#

Esta clase permitirá delimitar el tipo de validación que le queremos poner a nuestro text box.


public class KeyCodeValidator
{
    public const string Texto = " if(window.event.keyCode >= 65 && window.event.keyCode <= 90 || window.event.keyCode >= 97 && window.event.keyCode <=122 || window.event.keyCode == 32 || window.event.keyCode == 164 || window.event.keyCode == 165 || window.event.keyCode == 46|| window.event.keyCode >= 192 && window.event.keyCode <= 252) window.event.returnValue=true; else window.event.returnValue=false; ";
    public const string Fecha = " if((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 47) window.event.returnValue=true; else window.event.returnValue=false; ";
    public const string Mail = " if(window.event.keyCode >= 65 && window.event.keyCode <= 90 || window.event.keyCode >= 97 && window.event.keyCode <=122 || window.event.keyCode >=48 && window.event.keyCode <= 57 || window.event.keyCode == 64 || window.event.keyCode == 29 || window.event.keyCode == 45 || window.event.keyCode == 46 || window.event.keyCode == 95) window.event.returnValue=true; else window.event.returnValue=false; ";
    public const string Decimal = " if(window.event.keyCode >= 48 && window.event.keyCode <= 57 || window.event.keyCode == 46 || window.event.keyCode == 44 || window.event.keyCode == 45) window.event.returnValue=true; else window.event.returnValue=false; ";
    public const string AlfaNumerico = " if(window.event.keyCode >= 65 && window.event.keyCode <= 90 || window.event.keyCode >= 97 && key.keyCode <=122 || window.event.keyCode == 32 || window.event.keyCode == 164 || window.event.keyCode == 165 || window.event.keyCode == 46|| window.event.keyCode >= 192 && key.keyCode <= 252 || window.event.keyCode >= 48 && key.keyCode <= 57) window.event.returnValue=true; else window.event.returnValue=false; ";
    public const string Bloqueado = " window.event.returnValue=false;";
    public const string Numerico = " if(window.event.keyCode >= 48 && window.event.keyCode <= 57) window.event.returnValue=true; else window.event.returnValue=false;";
}



Asignarle la validacion al textbox.

En el load del aspx:


txtdsComentario.Attributes.Add("onkeyPress", KeyCodeValidator.Texto);


Con esta validación no dejara teclear las teclas que no estan permitidas.

viernes, 21 de junio de 2019

Crear Linked de base de datos Interna a Azure


Estaba intentando crear un linked server a un servidor interno SQL 2008, hice el linked server de manera normal, el linked server se creó sin problemas, pero al momento de desplegar las tablas aparecía este error.

Reference to database and/or server name in NameBase.sys.sp_tables_rowset2' is not supported in this version of SQL Server. (Microsoft SQL Server, Error: 40515)

Solucion:
Ejecutar estos 3 SPS
El sp se debe ejecutar desde alguna base de datos de la instancia interna


EXEC sp_addlinkedserver
@server='NAMELINKED',
@srvproduct='',    
@provider='sqlncli',
@datasrc=' INSTANCIA.database.windows.net',
@location='',
@provstr='',
@catalog='NAMEBASE'


EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'NAMELINKED',
@useself = 'false',
@rmtuser = 'USER@INSTANCIA.database.windows.net',
@rmtpassword = 'PASSWORDAZURE'

EXEC sp_serveroption 'NAMELINKED', 'rpc out', true


Ejmeplo:


jueves, 25 de abril de 2019

Buscar texto en sps SQL server

Buscar un texto en todos los sps de una base de datos:



declare @search varchar(50)
SET @search = 'CatalogoInformacion'

SELECT
ROUTINE_NAME
,ROUTINE_DEFINITION
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_DEFINITION LIKE '%' + @search + '%'
--AND ROUTINE_TYPE ='PROCEDURE'
ORDER BY
ROUTINE_NAME

Cómo poner dobles comillas en un texto C#

Se requiere poner el texto; "{"isSuccessful":true,"message":"ok"}"

en C# se debe poner:

"{ \"isSuccessful\":true,\"message\":\"ok\"} "

jueves, 18 de abril de 2019

Top en consulta LINQ C# Lambda




   Movtos = Movtos.ToList().FindAll(x => x.idCodigoTipoMov == EnumTipoMovimientos.SobreConsumo.GetHashCode() && x.idEstatus == EnumEstatusSobreconsumo.PorAutorizar.GetHashCode()).Take(5);

Ver el historial las conexiones WIFI en las que te has conectado

Haciendo uso de un log de Windows que podemos ubicar nosotros mismos en “C:\windows\System32\winevt\Logs\Microsoft-Windows-WLAN-AutoConfig%4Operational.evtx” 



viernes, 5 de abril de 2019

AJAX Calendar extender ¿Cómo puedo activar el evento de cambio de cuadro de texto después de la fecha elegida en el calendario?


Si configura las propiedades "habilitadas" del cuadro de texto en falso, no contendrá el foco o el evento de desenfoque.
Por lo tanto, necesita establecer un PopupButtonID para el extensor de calendario AJAX. Y usa el método javascript _DopostBack pars desencadenar evento TextBox TextChanged;

 <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
        <asp:TextBox ID="TextBox1" runat="server"  Enabled="false"  OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/aaa.jpg" Width="20" Height="20" />
        <asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TextBox1" PopupButtonID="ImageButton1" OnClientDateSelectionChanged="CheckTextChange"></asp:CalendarExtender>
         <script>            
             function CheckTextChange()
             {
                 __doPostBack('<%= TextBox1.ClientID %>', 'TextBox1')                 
             }
        </script>
    </div>

En code behind

protected void Page_Load(object sender, EventArgs e)
        {

            if (IsPostBack) 
            {
                var str1 = Request["__EVENTTARGET"];
                if (Request["__EVENTARGUMENT"] == "TextBox1") {

                    TextBox1_TextChanged(null,null);
                }
            }
        }

        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            Response.Write("changed");
        }