- Imgeek C# Wireless Informatica y mucho mas


Mostrar datos de una tabla interna con abap usando SELECT ENDSELECT

Por | 3 de February de 2013

Aqui el codigo:

*&---------------------------------------------------------------------*
*& Report  YMUESTRATABLA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YMUESTRATABLA.

DATA Tabla_Interna TYPE ZMITABLA.
DATA Work_Area TYPE sflight.

Write / 'Imprime en el orden de la tabla de la DB'.
PARAMETERS CAMPO TYPE STRING.
SELECT * FROM sflight
INTO Work_Area
WHERE carrid = CAMPO.

  WRITE: /
          WORK_AREA-CARRID,
          WORK_AREA-CONNID,
          WORK_AREA-FLDATE,
          WORK_AREA-PRICE,
          WORK_AREA-CURRENCY,
          WORK_AREA-PLANETYPE.
  ENDSELECT.
  ULINE.

Dudas? Pregunta por aqui :)

Opina | Más notícias sobre ABAP



Como definir una estructura en abap (Structure) y una internal table

Por | 17 de January de 2013

El siguiente codigo muestra como definimos una estructura localmente en abap y posteriormente creamos una tabla interna que hace referencia a esta estructura:

TYPES: BEING OF gty_s_type, "Se define la estructura localmente con 2 campos

carrid TYPE s_carr_id,  "Aqui definimos nuestros 2 campos
connid TYPE s_conn_id,

END OF gty_s_type.


                                       
DATA gt_itab TYPE STANDARD TABLE OF gty_s_type "se define una internal table referenciada a nuestra structura

Opina | Más notícias sobre ABAP, Programacion



Webservices to DataTable

Por | 20 de November de 2012

Realmente no un webservices no puede retornar un datatable, seguramente si estas intentando que un gridview lea los datos desde un webservices lo intentes con un datatable. Esto producira un error.
Para que funcione, lo que tenemos que hacer es crear un webservices que del DataTable copie los datos a una Lista de Datos y posteriormente el webservices retornara esta lista para que el grid la lea u otro control.

Primero necesitamos una clase con las columnas que queremos mostrar desde el webservices. Asique agregamos una clase a nuestro proyecto, yo la he llamado Ultra.cs

public class Ultra
{
    public string Usuario { get; set; }
    public string Password { get; set; }
}

Y posteriormente creamos nuestro servicio web y agregamos el siguiente metodo:

[WebMethod]
    public List<Ultra> MandaDatos() {
        string conexion = ConfigurationManager.ConnectionStrings["conexion"].ToString();
        string query = "select * from usuarios";
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(query, conexion);

        da.Fill(dt);

        List<Ultra> ListaUsuarios = new List<Ultra>();

        foreach (DataRow dr in dt.Rows)
        {
            Ultra usuarios = new Ultra();
            usuarios.Usuario = dr["usuario"].ToString();
            usuarios.Password = dr["password"].ToString();

            ListaUsuarios.Add(usuarios);
           

        }
        return ListaUsuarios;
       
    }

A continuacion muestro el codigo completo de el webservices

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente.
// [System.Web.Script.Services.ScriptService]
public class ServicioUsr : System.Web.Services.WebService {

    public ServicioUsr () {

       
    }

    [WebMethod]
    public List<Ultra> MandaDatos() {
        string conexion = ConfigurationManager.ConnectionStrings["conexion"].ToString();
        string query = "select * from usuarios";
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(query, conexion);

        da.Fill(dt);

        List<Ultra> ListaUsuarios = new List<Ultra>();

        foreach (DataRow dr in dt.Rows)
        {
            Ultra usuarios = new Ultra();
            usuarios.Usuario = dr["usuario"].ToString();
            usuarios.Password = dr["password"].ToString();

            ListaUsuarios.Add(usuarios);
           

        }
        return ListaUsuarios;
       
    }
   
}

Muy bien, ya solo agregamos nuestra referencia web, yo he llamado a mi servicio: ServiciUsr
Bien, ahora solo queda consumirlo. Para llenar el grid solo hacemos:

  ServicioUsr serv = new ServicioUsr();
        GridView1.DataSource = serv.MandaDatos();
        DataBind();

Listo, con eso el grid mostrara los datos como se ve a continuacion:
Gridview

Opina | Más notícias sobre .NET, ASP.NET, c#, desarrollo web, Programacion



Uso de POST en ASP.NET MVC

Por | 7 de November de 2012 |1 comentario

Bien,
He buscado mucha información de como es el uso de POST en ASP.NET MVC, he encontrado muy pocos resultados, y los que he encontrado no lo explican a como lo necesito así que voy hablar un poco de esto.
Nota: Si no sabes muy bien como funciona MVC recomiendo los siguientes 2 tutoriales:
Manual Framework ASP.NET MVC
The ASP.NET MVC Officia
Si eres nuevo en ASP.NET MVC te habrás dado cuenta que por obvias razones no existen los eventos, es decir, a diferencia de ASP.NET WEB FORMS no es posible solo darle clic a un boton y hacer que ejecute acciones como guardar lo que tienes en el textbox en una base de datos.
Aqui podria decir que es algo mas o menos como PHP, si has programado en PHP sabes que todo se hace a “manita” necesitas crear tus formularios desde código HTML y creas un boton que envie estos datos a otra pagina para que los datos del formulario sean procesados en otra pagina.
Iniciemos.
Para este tutorial necesitamos lo siguiente:
*Visual Studio 2010 o superior (Tambien pueden usar Visual Web Developer)
*Framework 4.0 (Tambien pueden usar 3.5)
*Ganas de dejar un comentario al terminar de leer (Asi me motivo a escribir mas ;-)

Abrir Visual Studio
Clic en Archivo > Nuevo Proyecto
Seleccionar: ASP.NET MVC Web Application
Nombrar al proyecto como:MvcUsandoPost
Click en OK

En la siguiente pantalla seleccionamos Empty (Vacio) y en el View engine seleccionamos Razor
Proeycto
Click en OK
Ahora en el Explorardor de soluciones tenemos varios directorios, entre ellos hay tres directorios llamados:
*Controllers
*Models
*Views

Ubicamos el directorio Controllers para crear el controlador principal. Clic derecho sobre el directorio y seleccionamos: Agregar -> Controller
El nombre del controlador sera: “Home” Pero por norma general cada controlador termina con la palabra “Controller” Asi que debe llamarse: “HomeController”
En la siguiente pantalla la dejamos como se ve la siguiente imagen:

Se observa la siguiente Pantalla:

Hemos creado un controlador el cual tiene un evento (Acción de ahora en adelante) que se llama Index, y como tal, lo que regresa es una vista de igual nombre (Index)
Pero actualmente no contamos con esta vista, por lo cual vamos a proceder a generarla.
Ubicamos el directorio Views y damos clic derecho sobre el. Seleccionamos: Agregar -> Nueva Carpeta. Nombramos a esta carpeta Home
(Como el nombre de nuestro controlador ya que esta vista pertenece al controlador principal llamado Home)
Ahora ya que hemos creado este directorio llamado Home, lo seleccionamos y dando clic derecho sobre el. Seleccionamos Agregar -> View
En el nombre le pondremos Index
Y lo demás lo dejamos como se ve a continuación:

Click en ok

Crear el Modelo:
Bien, aqui tenemos que crear el modelo, es decir la lógica del negocio.
Ubuicamos el directorio llamado Models.
Click derecho>Agregar > Clase.
En el nombre le ponemos: Usuario y damos clic en ok.
Bien, ahora solo tenemos que agregar 2 propiedades para que se vea de la siguiente forma:

Bien, guardamos y ahora vamos a dirijirnos a nuestra vista llamada Index en la cual vamos agregar un formulario para que quede de la siguiente manera:

@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@model MvcUsandoPost.Models.Usuario

<form action="../Home/MuestraDatos" method="POST"><label for="login">login:</label>
<input type="text" name="login" value="@(Model!=null ? Model.login : string.Empty)" /><label for="password">clave:</label>
<input type="text" name="password" />

<input type="submit" value="enviar" />

</form>


Fijate muy bien, primero hemos llamado a nuestro modelo Usuario:

@model MvcUsandoPost.Models.Usuario

Y le hemos dicho al formulario que envié los datos al controlador Home he invoque a la acción llamada: MuestraDatos Pero como te estarás preguntando: ¿Y donde en que momento he creado yo esa accion? Pues aun no la hemos creado, pero vamos hacerlo:

Vamos a nuestro controlador llamado: HomeController Ahora bien, lo primero que necesitamos hacer es incluir en los usings a nuestro modelo llamado Usuario. Es decir:

using MvcUsandoPost.Models;

Ahora observemos que tenemos ya una accion llamada Index, la cual invoca a la vista llamada con el mismo nombre, vista que nosotros hemos creado, bien, pues la accion es esta:

public ActionResult Index()
{
return View();
}

Nosotros vamos a crear otra accion llamada: MuestraDatos diacha accion la vamos a colocar justo de bajo de esta. El código es el siguiente:

public ActionResult MuestraDatos(Usuario usuario)
{
if (string.IsNullOrEmpty(usuario.login) ||
string.IsNullOrEmpty(usuario.password))
{
ViewBag.Error = "Login o password no pueden estar vacíos";
return View(usuario);
}

return View(usuario);
}

Todo el codigo se puede ver en la siguiente imagen:
Codigo
Pero como nos damos cuenta, esta acción lo que retorna son los datos a la vista, es decir, primero ingresamos los datos en la vista index, la cual envia estos datos ala acción MuestraDatos
y la esta acción regresara estos datos a la vista llamada con el mismo nombre (MuestraDatos.)
Esta vista no existe todavía Así que vamos a crearla:
Ubicamos el directorio View -> Home. Dentro de este se encuentra la vista llamada Index. Damos clic derecho en el directorio Home -> Agregar -> View La nombraremos como hemos dicho antes: MuestraDatos y damos clic en OK.
Listo, ya estando aqui, lo que tenemos que hacer es invocar nuevamente a nuestro modelo llamado Usuario y posteriormente ya podremos acceder directamente a sus valores:

Ahora corremos nuestro proyecto con F5.
En pantalla nos pide los datos:
Formulario

Y listo :) Espero no se me haya pasado nada, de cualquier forma abajo dejo el link de descarga de este proyecto.
Nota: Para efectos didácticos y de mejor compresion yo he creado los formularios con etiquetas HTML pero una mejor practica es crear formarios a partir de Helpers los cuales ahorran mucho codigo :)
Descarga proyecto:




Descarga



Guardar datos en SQL SERVER desde C# usando una clase

Por | 5 de November de 2012

Aregagar 2 textbox y un button
Agregar una clase en el proyecto con el nombre: ClsUsr
Tener una tabla en SQL SERVER llamada usuarios
2 columnas en la tabla usuarios llamadas Usuario y Password Ambas de nvarchar 50

Bien, la estructura de la clase ClsUsr es la siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


public class ClsUsrs
{
public string Usuario { get; set; }
public string Password { get; set; }
}

Como se ve se tienen 2 propiedades, Usuario y Password, a estas variables se pasaran los valores que se encuentren dentro de los Texbox y posteriormente se usaran para enviar esos valores a la tabla usuario de SQL SERVER.

Esta es la pagina del Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{

protected void Button1_Click(object sender, EventArgs e)
{
ClsUsrs usr = new ClsUsrs();
usr.Usuario = TextBox1.Text;
usr.Password = TextBox2.Text;
INSERTAR(usr);

}

public void INSERTAR(ClsUsrs usr)
{
SqlConnection cnn = new SqlConnection("SERVER=Servidor;UID=sa;PWD=password;DATABASE=DB");
cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO USUARIOS VALUES(@Usuario,@Password)";

cmd.Parameters.Add("@Usuario", SqlDbType.VarChar, 50).Value = usr.Usuario;
cmd.Parameters.Add("@Password", SqlDbType.VarChar, 50).Value = usr.Password;
cmd.ExecuteNonQuery();
cnn.Close();
}
}

Como se ve se agrego un metodo llamado INSERTAR El cual lo unico que hace es la conexion a SQL SERVER, se indica la consulta de insercion de datos, asi como se le indica que los valores seran enviados por parametros (@Usuario,@Password) Se abre la conexion, se ejecuta la consulta y listo.

Despues dentro del evento del boton se crea una variable llamada usr que contiene la instancia de la clase ClsUsr. Entonces se le indica a esa variable que asigne los valores de los textbox a las 2 propiedades que tiene dicha clase:

usr.Usuario = TextBox1.Text;
usr.Password = TextBox2.Text;

Ahi practicamente le dice: El valor del textbox1 asignalo a la variable Usuario y el de textbox2 a la variable Password.
Ya que tenemos los valores en las variables, simplemente le pasamos esos datos a nuestra consulta que esta dentro del evento INSERTAR el cual como se indico anteriormente, se enviaran los values mediante parametros.

Opina | Más notícias sobre .NET, ASP.NET, c#, desarrollo web, Programacion



Como pasar un Datatable a una lista con C# ASP.NET y/o Linq

Por | 23 de October de 2012

En este ejemplo mostrare como se puede leer una lista de datos desde un gridview. Basicamente lo que voy hacer es muy sencillo, primero hare una consulta a una base de datos la cual me regresara los valores que deseo solicitar, una vez obtenidos los guardare en un DataTable y posteriormente a esto los copiare a una Lista de datos para leer acceder a sus datos y leerlos desde el gridview. De esta manera no leere los datos del DataTable directamente desde el grid como comun solemos hacerlo.

Pero para que haria algo asi si puedo leerlo directamente desde un DataTable haciendo algo como lo siguiente:

Gridview1.DataSource=dt;

Facil, yo lo use porque necesitaba hacer un servicio web (WebService) que me regresara datos de una base de datos. En .NET no se puede hacer esto directamente, es decir un webservices no puede retornar un dt por serializacion.
Entonces se me ocurrio que podia obtener los datos de un,pasarlos a un DT y luego a lalista de datos la cual si es posible retornar desde un webservices.
Para este ejemplo yo tengo una tabla llamada usuarios y en ella 2 columnas de tipo string una llamada usuario y otra llamada password
Primero creo una clase llamada Usuario que tiene lo siguiente:
public class Usuario

{
    public string User { get; set; }
    public string Password { get; set; }
}

En nuestra patgina de formularios agregamos un Boton y un GridView, en el evento del boton ponemos lo siguiente:

string conexion = "SERVER=VALP-MAPLE01;UID=sa;PWD=123;DATABASE=Practica";
  string query = "select * from usuarios";
        SqlDataAdapter da = new SqlDataAdapter(query, conexion);
        DataTable dt = new DataTable();
        da.Fill(dt);

        List<Usuario> usuario = new List<Usuario>();
        foreach (DataRow dr in dt.Rows)
        {

            Usuario usu = new Usuario();
            usu.User = Convert.ToString(dr["usuario"]);
            usu.Password = Convert.ToString(dr["Password"]);
            usuario.Add(usu);
        }
     GridView1.DataSource =usuario;
        DataBind();

Con eso facilmente nuestro GridView lee la lista y no el DataTable. Ustedes con esto ya pueden hacer un Servicio Web que retorne un conjunto de datos.
Tambien podemos hacer lo mismo utilizano Linq:

 protected void Button1_Click(object sender, EventArgs e)
    {
        DatosDataContext db = new DatosDataContext();

        var datos = (from p in db.Optimas


                     where p.Linea == "L15N"
                     select new
                     {
                         Linea = p.Linea,
                         Codigo = p.Codigo
                     }).ToList();
       
               
        GridView1.DataSource = datos;

             DataBind();

    }

Saludos!



Como leer un archivo de Excel desde C# y mostrarlo en GridView ASP.NET

Por | 10 de October de 2012

Hola,
Voy a mostrar como leer un archivo de excel y mostrar su contenido en un GridView, ustedes pueden mostrarlo en lo que quiera, pero para este ejerccio lo que hago es leer el archivo excel y pasr su contenido en un DataTable para despues ser mostrado desde un GridView.
Veamos, para este ejmplo lo hare desde una aplicacion de escritorio, si ustedes lo quieren hacer en web literalmente es lo mismo solo recuerden agregar el Databind(); si esque prefieren hacerlo por web.

Necesitamos tener la siguiente clase, la cual tendra un nombre llamado Funciones.
Para agregar la clase es clic derecho en el proyecto, agregar nuevo elemtno y seleccionan Clase y le ponen e nombre de Funciones.cs

Funciones.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace ExcelToGrid
{
class Funciones
{
public static DataTable selectExcel(string Arch, string Hoja)
{

OleDbConnection Conex = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Arch + ";Extended Properties=Excel 12.0;");

OleDbCommand CmdOle = new OleDbCommand();

CmdOle.Connection = Conex;
CmdOle.CommandType = CommandType.Text;
CmdOle.CommandText = "SELECT * FROM [" + Hoja + "$A6:DF100]";

OleDbDataAdapter AdaptadorOle = new OleDbDataAdapter(CmdOle.CommandText, Conex);

DataTable dt = new DataTable();

AdaptadorOle.Fill(dt);

return dt;
}
}
//Unicamente Select para archivos de Excel de donde se tomara la DATA

}

Si ya tienes conocimientos sobre clases sabras entonces como usarla.
Como veras recibe 2 parametros:
string Arch, string Hoja
Son dos cadenas de texto, Arch, es la ruta del archivo, ejemplo:

C:\Users\franco.lr\Desktop\LaopTops\Laptops.xlsx

Y el segundo es “El nombre de la hoja o pestaña que quieren mostrar”, por ejemplo en mi caso la hoja que quiero mostrar de mi libro de excel se llama Uno:


Entonces, guardamos la clase y vamos a nuestro formulari, agregamos un GridView y un boton.
Damos doble click sobre el boton para acceder al evento y le decimos al gridview1 que los datos que va a tener su data source son los que trae la clase. asi:

dataGridView1.DataSource = Funciones.selectExcel(@"C:\Users\franco.lr\Desktop\LaopTops\Laptops.xlsx", "Uno");

Y listo, cuando lo ejecutamos y cuando pichemos el boton ya debe de mostrar los datos, dejo el codigo final total de mi pagina de formularios:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ExcelToGrid
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
         
            dataGridView1.DataSource = Funciones.selectExcel(@"C:\Users\franco.lr\Desktop\LaopTops\Laptops.xlsx", "Uno");

        }
    }
}


Como obtener los valores de un CheckBoxList en ASP.NET C#

Por | 5 de September de 2012

Hola,
Para obtener los valores de de las casillas seleccionadas de un CheckBoxList es muy sencillo, podemos hacerlo de la siguiente forma:

    string Valores = "";
        for (int i = 0; i < CheckBoxList1.Items.Count; i++)
        {
            if ( CheckBoxList1.Items[i].Selected)
            {
                Valores += CheckBoxList1.Items[i].Value + ";";
               
            }
        }
        Response.Write(Valores);

Con esto obtendremos todos los valores que fueron seleccionados :)

Opina | Más notícias sobre .NET, ASP.NET, c#



Como crear Gridviews editables y bonitos con textbox

Por | 25 de January de 2012 |5 comentarios

Hola, este post esta relacionado con una entrada anterior que se llama Gridview seleccionable en ASP.NET C# Tambien es lo mismo con VB.NET.
Si leen la entrada anterior sabran que el procedimiento es completamente sencillo, y podran obtener algo como esto:

El codigo es el mismo tal cual explico en la siguiente entrada, a diferencia de que tienen que agregar codigo dentro del evento de la columna “seleccionar” asique como tal, damos doble click sobre dicha columna del GridView y ahora podemos ingresar el codigo para el evento que seria algo asi:

 protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string id = GridView1.SelectedRow.Cells[1].Text;
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Users where ID=" + id, cn);
        DataTable dt = new DataTable();
        da.Fill(dt);
        TextBox1.Text = dt.Rows[0]["User"].ToString();
        TextBox2.Text = dt.Rows[0]["Password"].ToString();
        TextBox3.Text = dt.Rows[0]["IsAdmin"].ToString();
        DataBind();

    }

nota adicional:
Varios comentaron que no les funciono? esto es obvio, no puse el boton de editar porque pense que por logica ya podrian hacerlo, OBSERVEN BIEN: Ya lograron que cuando seleccionan un registro del grid les ponga los datos en el textbox ENTONCES? Solo tienen q hacer un: UPDATE usuarios SET nombre=textbox1.text where id=ID.TXT, si no me explico entonces miren el codigo siguiente, esto tendrian que agregar en el evento del button:

 protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection(conexion);
        SqlCommand update = new SqlCommand("UPDATE Densidades SET Tubo='" + RadComboBox1.SelectedValue + "',Linea=" + RadTextBox1.Text + " where ID=" + TxtId.Text + "",cn);
      //  Response.Write("UPDATE Densidades SET Tubo='" + RadComboBox1.SelectedValue + "',Linea=" + RadTextBox1.Text + " where ID=" + TxtId.Text + "");
        cn.Open();
update.ExecuteNonQuery();
        cn.Close();


    }

Ahora solo tienen que cambiar lo que sigue despues de SET TUBO=’” Por sus textbox o combos, si se dan cuenta donde pongo: RadComobox1.SelectValue es porque es un como, ustedes remplasen eso por el campo que quieran asi como el de las cajas de text.

Como se ve en el codigo yo estoy haciendo referencia a 3 tablas que no aparecen en el codigo de la entrada anterior, esto porque perdi ese codigo y desarrolle este de rapido, pero realmente es lo mismo, solo cambia el nombre de la tabla y las columnas que tengan en su SQL SERVER.

De cualquier forma les comparto el codigo, para que lo descarguen, dejo el link de descarga directa mas abajo.
Si tienen alguna duda por favor haganmela saber en los comentarios.
Saludos
Link de descarga:




Grid on textbox


Opina | Más notícias sobre .NET, ASP.NET, c#, desarrollo web, VISUAL BASIC.NET, , ,



Como descargar archivos con c#

Por | 7 de October de 2011 |7 comentarios

Esto es algo muy sencillo, podemos descargar un archivo de la nube con C#, para esto necesitamos la url directa del archivo en internet y procedemos al codigo:

using System.Net;

WebClient webClient = new WebClient();
webClient.DownloadFile("http://mysite.com/myfile.txt", @"c:myfile.txt");

Como se ve en el ejemplo con estas sencillas 2 lineas podemos descargar el archivo, tambien como se ve se necesita incluir la Uaing System.NET.

Ahora bien, supongamos que tenemos que descargar un archivo pesado y queremos que nuestros usuarios puedan ver el progreso de la descargar como en una barra de progreso, de esas que tienen los navegadores cuando estan descargando algo de internet. Podemos hacerlo de la siguiente forma:

private void btnDownload_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri("http://mysite.com/myfile.txt"), @"c:myfile.txt");
}

private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}

private void Completed(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("Download completed!");
}

Como se ve es muy facil.
Suerte!





Sobre nosotros

Diseño basado en MilBits