Archive for the ‘ Consejos y trucos ’ Category

Como ordenar varchar como integer en MySql

Me tocó desarrollar una aplicación para manejar proyectos inmobiliarios y en una sección debía mostrar todos los apartamentos de un edificio en orden pero el problema es que el número del apartamento no siempre es entero como por ejemplo PB o 1-A ect.

Para esto utilicé lo siguiente:

select prpr_piso from proyectos_propiedades
where proy_id=’$pid’
group by prpr_piso
order by cast(prpr_piso AS SIGNED)

Request.Querystring desde Javascript

Me topé con la necesidad de obtener el valor del query string desde Javascript por lo que me puse a navegar y encontré una pequeña rutina que hace la magia.

function QueryString(key) {
fullQs = window.location.search.substring(1);
qsParamsArray = fullQs.split(“&”);
for (i=0;i<qsParamsArray.length;i++) {
strKey = qsParamsArray[i].split(“=”);
if (strKey[0] == key) {
return strKey[1];
}
}
}

Error al utilizar .RenderControl en un gridview

Al tratar de utilizar .rendercontrol para generar un archivo de excel me topé con error algo peculiar que me decia que el control debe estar dentro del <form>

Este es el código:

llenar_grid(); //llena el gridview
Response.Clear();
Response.AddHeader(“Content-Disposition:”, “attachment; filename=Report.xls”);
Response.Charset = “”;
Response.ContentType = “application/vnd.ms-excel”;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
drg_datos.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

Esto me generó el error antes mencionada el cual resolví agregando lo siguiente:

public override void VerifyRenderingInServerForm(Control control)
{
return;
}

Espero les sea de utilidad

Como convertir un IList a Datatable

Trabajando en una aplicación que me permite sincronizar información con uno de mis clientes me tope con la necesidad de transformar un IList que era entregado por el cliente a un DataTable.
Asi quedo todo:

Public Shared Function IList_DataTable(Of T)(ByVal list As IList(Of T)) As DataTable
Dim td As New DataTable
Dim entityType As Type = GetType(T)
Dim properties As PropertyDescriptorCollection = TypeDescriptor.GetProperties(entityType)

For Each prop As PropertyDescriptor In properties
td.Columns.Add(prop.Name)
Next

For Each item As T In list
Dim row As DataRow = td.NewRow()

For Each prop As PropertyDescriptor In properties
row(prop.Name) = prop.GetValue(item)
Next

td.Rows.Add(row)
Next

Return table
End Function

Generar sombra con CSS

Para generar sombra con css es tan fácil como agregar las siguientes lineas a la clase que se tenga asignada al objeto.

Ejemplo:

.div_con_sombra {
-moz-box-shadow: 3px 3px 4px #000;
-webkit-box-shadow: 3px 3px 4px #000;
box-shadow: 3px 3px 4px #000;
/* For IE 8 */
-ms-filter: “progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color=’#000000′)”;
/* For IE 5.5 – 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color=’#000000′);
}

Funcion isNumeric en vb.net

Tratando de validar si una variable era númerica en vb.net me tope con que no encontraba la función isnumeric. Despues de buscar e investigar un poco me percate que si quería usarla debía incluir “microsoft.visualbasic” en los Imports.
Si al final no deseas utilizar este namespace puedes validar si un valor es númerico con el siguiente código:

Public Function IsNumeric(ByVal str As String) as boolean
Dim r As Regex = New Regex(“\d+”)
Dim m As Match = r.Match(str)
If (m.Success) Then
Return True
End If
Return False
End Function

Como agregar un javascript de confirmación en asp.net

Si queremos por ejemplo eliminar un registro de un gridview o eliminar datos de un formulario, lo más normal es solicitar al usuario si realmente desea realizar este borrado.

Para esto debemos asociar el boton que dispara el evento de eliminar un javascript que haga la pregunta.
Esto lo debemos hacer en el page_load

If Not IsPostBack Then
Me.btn_yes.Attributes.Add(“onclick”, _
“return confirm(‘Esta seguro?’);”)
end if

Si la persona seleccione no el evento click del botón no se ejecutará.

Mensaje : You have been logged on with a temporary profile

Si eres usuario de Vindows Vista o Windows 7 y resives un mensaje como este:

“You have been logged on with a temporary profile. You cannot access your files and files created in this profile will be deleted when you log off. To fix this, log off and try logging on later. Please see the event log for details or contact your system administrator.”

debes hacer lo siguiente:

El problema usualmente ocurre si tu equipo se apaga inadecuadamente por falla eléctrica o por alguna otra razón.

1. Entra a tu equipo como administrador o con un usuario administrador.
2. Ve a inicio.
3. Entra al Regedit escribiendo esta palabra en el cuadro de búsqueda.
4. Localiza el registro HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows NT -> CurrentVersion -> ProfileList
5.Entra a uno de los s-1-5…. carpeta (SID Key) con un largo número dentro, debe tener un .bak al final.
6. En el panel derecho mira en ProfileImagePath para validar que sea el mismo usuario que despliega el erro.
7. Elimina el registro con el .bak.
8. Termina tu sesión de administrador y entra como el usuario que estaba presentando el problema.

Como configurar un NAT estatico (static NAT) en Fortigate

Primero que todo debemos saber que el fortigate llama a los static NAT, “Virtual IP mapping” .

Primero debemos ir a la sección: “Virtual IP” justo debajo de la sección “Firewall”, seguidamente damos click en el link de “Virtual IP”. En esta sección le damos click en “Create New”.

Llenamos los campos:

Name: Nombre que le queramos dar al Virtual IP

External Interface:La interfase que tiene acceso al internet

Type: Static NAT

External IP: El Ip público al que se le quiere hacer el NAT, puedes usar un rango de IPs

Mapped IP: El Ip privado

Port Forwarding: no es necesario al menos que deses que el ip público escuche un puerto y el privado otro.

Una vez creado debes crear una regla:

En el source colocas tu red pública y en el destination tu red privada. Es muy importante que definas en este punto tu destination address que debe ser el “Virtual IP” que creaste.

 

 

Error 0×80070020 cuando tratas de iniciar el IIS 7

Este error ocurre cuando el IIS 7 trata de iniciar manualmente y se debe a que otro programa esta usando el puerto 80 y el 443.

Para saber quien es el culpable puedes irte a la línea de comando y escribir:

netstat -aon | find “:80″ para el puerto 80

netstat -aon | find “:443″ para el 443

Debes ver en la lista un registro que dice por ejemplo:

TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1234

Luego te vas al administrador de tareas y buscas el proceso con PID 1234 en este caso.

Una vez detenido ese proceso o desistalado podrás iniciar el IIS