jueves, 26 de febrero de 2015

Android KitKat no mantiene el password cuando se usa el protocolo LEAP

Android guarda la información de autenticación en el archivo /data/misc/wifi/wpa_supplicat.conf y normalmente al cambiar la contraseña de la red solo es necesario editarlo para modificarlo acorde al de nuestra red.

En Android 4.4.4 (al parecer desde la versión 4.4.2) modificar la contraseña en este archivo y tratar de conectarse a la red wifi, android restablece la contraseña anterior en el archivo y por lo tanto no podemos conectarnos a nuestra red.

Para poder modificarla con éxito es necesario seguir los siguientes pasos:

  1. Respaldar el archivo wpa_supplicant.conf.
  2. Modificar la contraseña.
  3. Borrar/Renombrar el folder /data/misc/DHCP.
  4. Reiniciar el teléfono.
Después de esto el teléfono se conectará de manera normal.

NOTA: Para esto es necesario tener nuestro teléfono desbloqueado (rooted).

jueves, 12 de febrero de 2015

Eliminar registros repetidos de una DataTable

A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable.


//DataTable con los reqistros repetidos (myRepeatedData)
//Filtramos los registros únicos en la variable var.

var uniqueRows = myRepeatedData.AsEnumerable().Distinct(DataRowComparer.Default);

//Lo copiamos a otra DataTable
DataTable myUniqueData = uniqueRows.CopyToDataTable();


Con esto tendremos en la DataTable myUniqueData los registros únicos.

lunes, 9 de febrero de 2015

Mapear un campo de fecha nullable a un atributo de una clase

Cuando tenemos un código como el siguiente:

if (dt.Rows.Count > 0)
     {
      this._holderID = int.Parse(dt.Rows[0]["holder_id"].ToString());
      this._item = int.Parse(dt.Rows[0]["item"].ToString());
      this._holderType = dt.Rows[0]["htype_id"].ToString();
      this._qty = int.Parse(dt.Rows[0]["qty"].ToString());
      this._prodID =int.Parse(dt.Rows[0]["prod_id"].ToString());
      this._woID =int.Parse(dt.Rows[0]["wo_id"].ToString());
      this._stat = Stat.Loaded;
     }

en el cual tratamos de mapear los campos prod_id y wo_id a las variables _prodID y _woID de un objeto nos provoca un error al tratar de pasar un string vacio a entero en el caso de que ese campo de la tabla este vacío, tal y como se muestra en la siguiente figura:



La solución es muy simple solo hay que comprobar primero si el campo esta vacío, en ese caso le ponemos un valor por omisión (en este caso 0), y en caso de que el campo no este vacio lo convertimos a entero y lo asignamos a la variable de nuestro objeto:

El codigo resultante quedaría asi:

if (dt.Rows.Count > 0)
     {
      this._holderID = int.Parse(dt.Rows[0]["holder_id"].ToString());
      this._item = int.Parse(dt.Rows[0]["item"].ToString());
      this._holderType = dt.Rows[0]["htype_id"].ToString();
      this._qty = int.Parse(dt.Rows[0]["qty"].ToString());
      this._prodID = dt.Rows[0]["prod_id"].ToString().Trim() == string.Empty ? 0 : int.Parse(dt.Rows[0]["prod_id"].ToString());
      this._woID = dt.Rows[0]["wo_id"].ToString().Trim() == string.Empty ? 0 : int.Parse(dt.Rows[0]["wo_id"].ToString());
      this._stat = Stat.Loaded;
     }

Como podemos observar la solución es simple.

Happy Coding!!!

Mover mensajes seleccionados a un personal folder en Oulook 2016

Este es un ejemplo de como mover los mensajes seleccionados a un personal folder (pst) en Outlook 2016 usando VBA. Sub MoveInbox()     Mov...