Microsoft Edge + Actualización Windows 10 + Android / IOS = Mayor productividad en menos tiempo.

Hola y bienvenidos a este nuevo tutorial en el que vamos a ver un poco de las novedades que trae Windows 10.

Uno de los problemas más comunes al que nos enfrentamos quienes tenemos un día laboral complicado dónde tener el celular y la computadora a la mano es primordial es que cuando encontramos contenido que nos es de utilidad por lo general optamos por enviarnos el contenido por correo, mensaje a nuestros amigos para tenerlo a la mano, buscarlo en la computadora cuando lleguemos a la oficina o trabajo, etc. Microsoft con la última actualización de Windows 10 nos permite transmitir información desde nuestro dispositivo móvil hacia nuestro computador de en 2 clic permitiéndonos ahorrar tiempo e incluso hasta incrementar nuestra productividad ya que podemos tener siempre sincronizados nuestros dispositivos.

Para ello vamos a hacer un ejemplo utilizando Microsoft Edge.

Vamos a configuración > tu teléfono > Ingrese su número de celular > de manera automática le detectará los dispositivos que tiene en uso.

Nota: Debes tener la aplicación Outlook con la cuenta de la computadora para poder utilizar este servicio, y hacer uso del launcher Microsoft Launcher como principal para sacar el mayor provecho a este tipo de servicios Microsoft.

union

Abre el navegador Microsoft Edge en tu dispositivo móvil ya sea Android o IOS y abre la página que desees pasar o ver en tu computador. En mi caso Youtube.

ANDROID:

Da clic en el icono de 3 puntos > flecha compartir > Continuar en PC > Selecciona tu pc y espera unos segundos y listo.

Screenshot_20171022-135626

Abre el navegador Microsoft Edge en tu dispositivo móvil ya sea Android o IOS y abre la página que desees pasar o ver en tu computador. En mi caso Youtube.

Da clic en el icono de 3 puntos > flecha compartir > Continuar en PC > Selecciona tu pc y espera unos segundos y listo.

paso2

Screenshot_20171022-135809

 

Hasta la próxima.

Anuncios

Módulo 13 Trabajando con filas de un datagrid

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Utilizar una fila de la información mostrada correspondiente al contenido de la tabla en sql azure.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores
  • Contenido del tutorial de mostrar información

Interfaz

datagrid

Código

private void btnsuma_Click(object sender, RoutedEventArgs e)
{
try
{
int suma = 0;
foreach(DataRowView row in datagrid.Items) //recorremos las lineas del datagrid
{

//le decimos que queremos la información de la fila 6 para sumarla
suma = suma + int.Parse(row.Row.ItemArray[6].ToString());
txtpesosuma.Text = suma.ToString(); //mostramos la suma

}
}
catch(Exception ex)
{

}

}

Curso completo: aquí

Módulo 12 Llamar Procedimientos almacenados en SQL Azure

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Llamar un procedimiento almacenado de una base de datos en SQL Azure desde un formulario WPF.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores

Interfaz:

insertar

Código

private void btnguardar_Click(object sender, RoutedEventArgs e)
{//validamos que todos los datos del formulario esten llenos
if (txtnombre.Text != “” && txtapellido1.Text != “” && txtapellido2.Text != “” && txtedad.Text != “” && txtpeso.Text != “” && txtestatura.Text != “”)
{//declaramos un reader para que verifique la información
SqlDataReader rdr = null;
//creamos la conexión
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString);
//abrimos la conexión
conn.Open();
//ingresamos el nombre de nuestro procedimiento almacenado en un sqlcommand
SqlCommand cmd = new SqlCommand(“registrousuariocurso”, conn);
//decimos que es un procedimiento almacenado
cmd.CommandType = System.Data.CommandType.StoredProcedure;
//asignamos a las variables creadas en el procedimiento los valores del formulario
cmd.Parameters.Add(new SqlParameter(“@nombre”, txtnombre.Text));
cmd.Parameters.Add(new SqlParameter(“@apellido1”, txtapellido1.Text));
cmd.Parameters.Add(new SqlParameter(“@apellido2”, txtapellido2.Text));
cmd.Parameters.Add(new SqlParameter(“@sexo”, combosexo.SelectedValue.ToString()));
cmd.Parameters.Add(new SqlParameter(“@edad”, int.Parse(txtedad.Text)));
cmd.Parameters.Add(new SqlParameter(“@peso”, float.Parse(txtpeso.Text)));
cmd.Parameters.Add(new SqlParameter(“@estatura”, float.Parse(txtestatura.Text)));
//ejecutamos el reader
rdr = cmd.ExecuteReader();
//cerramos el reader y la conexión
rdr.Close();
conn.Close();

}
}

Curso completo: aquí

Módulo 11 Mostrar información de tablas SQL Azure

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Mostrar toda la información de nuestra tabla en un datagrid usando una base de datos en SQL Azure.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores con registros

Interfaz:

datagrid

Código

private void btnmostrar_Click(object sender, RoutedEventArgs e)

{

//Creamos la conexión

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString);

//Creamos un sqldataadapter

SqlDataAdapter ada = new SqlDataAdapter(“Select * from registroalumno”, con);

//creamos un dataset

DataSet ds = new DataSet();

//abrimos la conexión

con.Open();

//agrega o actualiza las filas del dataset

ada.Fill(ds, “registroalumno”);

//cerramos la conexión

con.Close();

//cargamos la informaicón a nuestro datagrid convirtiendola en un dataview

datagrid.ItemsSource = new DataView(ds.Tables[“registroalumno”]);

}

Curso completo: aquí

Módulo 9 Actualizar información en tablas SQL Azure

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Actualizar información resultante del tutorial de búsqueda utilizando el numcontrol en nuestra base de datos en SQL Azure.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores
  • Código del tutorial de buscar información

Interfaz:

insertar

 

Código:

private void btnactualizar_Click(object sender, RoutedEventArgs e)

{//validamos que el usuario ingrese todos los datos

if (txtnombre.Text != “” && txtapellido1.Text != “” && txtapellido2.Text != “” && txtedad.Text != “” && txtpeso.Text != “” && txtestatura.Text != “”)

{//creamos la conexión enlazando con las credenciales de app.config

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString);

//abrimos la conexión

conn.Open();

//creamos el sqlcommand y lo igualamos con la conexión para hacer la consulta

using (SqlCommand command = conn.CreateCommand())

{

//creamos la sentencia de actualización con todos los parametros y basandonos en el numero de control previamente ingresado

command.CommandText = “Update registroalumno set nombre=@nombre,apellido1=@apellido1,apellido2=@apellido2,sexo=@sexo,edad=@edad,peso=@peso,estatura=@estatura where numcontrol='” + txtncontrol.Text + “‘”;

//le asignamos a las variables de actualización, la información ingresada por el usuario

command.Parameters.AddWithValue(“@nombre”, txtnombre.Text);

command.Parameters.AddWithValue(“@apellido1”, txtapellido1.Text);

command.Parameters.AddWithValue(“@apellido2”, txtapellido2.Text);

command.Parameters.AddWithValue(“@sexo”, combosexo.SelectedValue.ToString());

command.Parameters.AddWithValue(“@edad”, int.Parse(txtedad.Text));

command.Parameters.AddWithValue(“@peso”, float.Parse(txtpeso.Text));

command.Parameters.AddWithValue(“@estatura”, float.Parse(txtestatura.Text));

//validamos que se actualizará la informacion con el executenonquery el cual regresa el número de líneas afectadas

int estatus = command.ExecuteNonQuery();

//sí las lineas afectadas son mayor a 0 se notifica el cambio

if (estatus > 0)

{

txtestatus1.Text = “Información de usuario actualizada”;

}

else

{

txtestatus1.Text = “Algo fallo”;

}

}

}

else

{

txtestatus1.Text = “Ingresa toda la información para poder actualizar”;

}

}

Curso completo: aquí

Módulo 8 Buscar información de tablas SQL Azure

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Buscar registros a través del numcontrol en nuestra base de datos en SQL Azure.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores

Interfaz:

buscar

Código:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString); //Creamos una sql conexión enlazando con app.config

conn.Open(); //Abrimos la conexión

using (SqlCommand command = conn.CreateCommand()) //creamos un sqlcommand y la igualamos a la conexión

{

SqlCommand cms = new SqlCommand(“Select * from registroalumno where numcontrol='” + txtncontrol.Text+ “‘”, conn); //generamos la sentencia igual que en sql server

SqlDataReader dr = cms.ExecuteReader(); //creamos un datareader que será el que busque en la base de datos el numcontrol del usuario

while (dr.Read()) //una vez encontrado el usuario, traemos su información y la asignamos a los campos del formulario

{

txtnombre.Text = dr[“nombre”].ToString();

txtapellido1.Text= dr[“apellido1”].ToString();

txtapellido2.Text = dr[“apellido2”].ToString();

txtedad.Text = dr[“edad”].ToString();

txtpeso.Text= dr[“peso”].ToString();

txtestatura.Text= dr[“estatura”].ToString();

combosexo.SelectedValue=dr[“sexo”].ToString();

}

dr.Close();//cerramos el datareader

conn.Close(); //cerramos la conexión

}

Curso completo: aquí

Módulo 7 Insertar información en tablas

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Insertar registros nuevos en nuestra base de datos en SQL Azure sin utilizar procedimientos almacenados, revisar que la información proporcionada por el usuario sea válida, es decir, cadenas de texto y números

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • Cuenta de Azure vigente
  • Base de datos y tablas creadas en los módulos anteriores

Interfaz de usuario

En esta ocasión he decidido dividir en dos partes la interfaz de usuario, la primera de ellas es la sección de Información Personal dónde se toman los datos personales de los chicos, el segundo apartado es la sección de peso y estatura.

insertar

Funcionamiento:

El usuario puede navegar entre las secciones, pero al dar clic en guardar debe validar que todos los datos sean ingresados con anterioridad.

Código:

Agregamos información al combo de sexo de la siguiente manera:

combosexo.Items.Add(“H”);

 combosexo.Items.Add(“M”);

Para cumplir con el funcionamiento de las secciones agregamos el siguiente código:

private void btnpersonal_Click(object sender, RoutedEventArgs e) //Hace visible el grid personal y oculta el grid de perso y estatura {

gridpersonal.Visibility = Visibility.Visible;

gridpeso.Visibility = Visibility.Collapsed;

}

private void btnpeso_Click(object sender, RoutedEventArgs e) //Hace visible el grd de peso y estatura / oculta el grid de datos personales

{

gridpeso.Visibility = Visibility.Visible;

gridpersonal.Visibility = Visibility.Collapsed;

}

Insertando información en la base de datos

private void btnguardar_Click(object sender, RoutedEventArgs e)

{

if (txtnombre.Text != “” && txtapellido1.Text != “” && txtapellido2.Text != “” && txtedad.Text != “” && txtpeso.Text != “” && txtestatura.Text != “”) //validamos que la información sea ingresada

{

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString); //creamos la conexión a nuestra base de datos llamando la información de app.config

using (SqlCommand command = conn.CreateCommand()) //creamos el sqlcommand e igualamos a la conexión

{

command.CommandText = “insert into registroalumno(nombre,apellido1,apellido2,sexo,edad,peso,estatura)values(@nombre,@apellido1,@apellido2,@sexo,@edad,@peso,@estatura)”; //generamos la sentencia insert, igual que en SQL Server

//Asignamos a las variables de inserción los valores del formulario

command.Parameters.AddWithValue(“@nombre”, txtnombre.Text);

command.Parameters.AddWithValue(“@apellido1”, txtapellido1.Text);

command.Parameters.AddWithValue(“@apellido2”, txtapellido2.Text);

command.Parameters.AddWithValue(“@sexo”, combosexo.SelectedValue.ToString());

command.Parameters.AddWithValue(“@edad”, int.Parse(txtedad.Text));

command.Parameters.AddWithValue(“@peso”, float.Parse(txtpeso.Text));

command.Parameters.AddWithValue(“@estatura”, float.Parse(txtestatura.Text));

//abrimos la conexión

conn.Open();

// command.ExecuteNonQuery() nos devuelve el número de líneas afectadas

int estatus = command.ExecuteNonQuery();

//Sí es mayor a 0, el usuario se ha registrado

if (estatus > 0)

{

txtestatus.Text = “Usuario registrado con éxito”;

}

else

{

txtestatus.Text = “Algo fallo”;

}

}

//se cierra la conexión

conn.Close();

}

else //notifica al usuario de que falta ingresar alguna información

{

txtestatus.Text = “Debes ingresar toda la información para poder continuar con el registro”;

}

}

Validamos que sean exclusivamente números los que el usuario ingrese en los campos de edad, peso y estatura de la siguiente manera:

private void txtpeso_KeyDown(object sender, KeyEventArgs e)

{

if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9)

{

txtestatus.Text = “”;

}

else

{

txtestatus.Text = “El peso debe contener valores númericos”;

}

}

Corremos el código y listo tenemos nuestros datos insertados sin el uso de procedimientos almacenados.

Curso completo: aquí