Eruano's Blog

Simple y sencillo … como debe ser!

Entradas etiquetadas ‘C#

C# – Cargar enumerador a DropDownList

dejar un comentario »

Desarrollando un pequeno proyecto web me econtre con un sencillo problema: Cargar los items de un enumerador en un DropDownList (combobox).

Teniendo:

enum MiEnumerador { colombia = 0 , ecuador = 1, peru = 2, venezuela = 3, bolivia = 4 }

Para cargar este enumerador en un dropdownlist:

protected void Page_Load(object sender, EventArgs e)
{
	if (!IsPostBack)
	{
		drpMiDrop.DataSource = Enum.GetNames(typeof(MiEnumerador ));
		drpMiDrop.DataBind();
	}
}

Espero sea de ayuda. Un Saludo.

Escrito por eruano

20 julio 2011 a 8:48 am

Implementación algoritmo K-NN (K vecinos mas cercanos) en C#

con 6 comentarios

Comparto con uds una implementacion del algoritmo K-NN en VisualStudio 2010 usando c# como lenguaje que realice en una clase del curso de mineria de datos.

El comprimido contiene:
- Proyecto en visual studio 2010
- Backup de la base de datos que contiene el dataset para la busqueda

No olviden ajustar la cadena de conexion del proyecto para que coincida con la información de su equipo.

Descargar desde Aqui
Observación: el archivo se encuentra en mi cuenta de SkyDrive, bastara con dar click en Descargar.

Saludos.

Escrito por eruano

1 abril 2011 a 1:22 am

Manejar conflicto de Hilos, Windows Forms C#

dejar un comentario »

Teniendo aplicaciones que requieren de dos o mas hilos es frecuente encontrarse con conflictos de hilos, estos conflictos son comunmente generados porque un hilo intenta acceder a uno o mas recursos de otro hilo. En este caso se puede aplicar esta solucion para manejar el conflicto.

En el siguiente ejemplo se pretende modificar el mensaje de un Label desde un hilo cualquiera.

// Se declara el delegado para el manejo del conflicto public delegate void DelegadoMensaje (String mensaje) ;
class MiClase{
// Se declara el evento que posteriormente sera el encargado de llamar a la funcion que manejara el conflicto
private event DelegadoMensaje EventoMostrarMensaje;
// Constructor de la clase, asigna al evento la funcion que debe manejar el mensaje
public MiClase(){
EventoMostrarMensaje += new DelegadoMensaje(VeElMensaje);
}
// Esta funcion se encarga de manejar el conflicto mediante la invocacion de un nuevo delegado
public void VeElMensaje(string Mensaje){
DelegadoMensaje Mi_Conectar_Resultado;
Mi_Conectar_Resultado = new DelegadoMensaje(VerResultado);
this.Invoke(Mi_Conectar_Resultado, new Object[] { Mensaje });
}
// Esta funcion modifica los recursos
public void VerResultado(String mensaje){
this.lblRecurso.Text = mensaje;
}
// Esta funcion es la que se invoca desde cualquier otro hilo
public void ColocarMensaje(String mensaje){
EventoMostrarMensaje(mensaje);
}
public static void main(String args[] ){
Thread miHilo = new Thread(new ThreadStart(MiFuncion));
miHilo.start();
}
 // Esta funcion representa el hilo que intenta acceder a los recursos de otro hilo
public void MiFuncion(){
ColocarMensaje("HOLA MUNDO!");
}
}
Espero que sea de ayuda.
Saludos

Escrito por eruano

8 diciembre 2009 a 6:57 pm

Escrito en Visual Studio

Etiquetado con , ,

View y MultiView, todo en una sola pagina y mas seguro!

dejar un comentario »

Cuando estamos diseñando interfaces para sitios web muchas veces tendemos a generar muchos formularios relacionados con la misma cuestion. Cuando diseñamos la gestion de personas, por ejemplo, tendemos a generar mas de una pagina para ese menester, tal vez generamos una pagina para ingreso, otra para consulta y asi…

Cuando tenemos muchos formularios y el ancho de banda no colabora mucho, el manejar muchas paginas para una sola gestion puede ser un punto en contra de nuestra aplicacion, con el componente View y Multiview provisto por VisualStudio podemos en una sola pagina colocar tantos formularios como queramos sin que se sobrecargue la pagina, podemos hacer que solo se muestre un formulario a la vez y cambiar a otro mucho mas rapido que cuando los tenemos en paginas diferentes.

Otra ventaja importante del uso de View y MultiView es que nos podemos evitar el envio de valores entre pagina y pagina que puede generar inseguridad en nuestra aplicacion, cuando manejamos todo en una misma pagina no tendremos redireccionamientos basta con almacenar los valores necesarios en variables temporales en el codebehind de la pagina.

La idea: Cada Multiview va a ser un contenedor de uno o mas elementos View, en el diseño vamos a tener una lista de compoenentes View, pero cuando ejecutemos la aplicacion solo se vera un View al tiempo (solo el que este activo). Para navegar entre ellos podemos incluir botones u otra cosa, el View visible se define con la propiedad: ActiveViewIndex del control Multiview.

vistadisenio

El codigo de los botones seria el siguiente:

protected void btnAnterior_Click(object sender, EventArgs e)
{
if(MultiView1.ActiveViewIndex > 0)
MultiView1.ActiveViewIndex = MultiView1.ActiveViewIndex – 1;
}
protected void btnSiguiente_Click(object sender, EventArgs e)
{
if(MultiView1.ActiveViewIndex < MultiView1.Views.Count – 1)
MultiView1.ActiveViewIndex = MultiView1.ActiveViewIndex + 1;
}

El anterior codigo debe repetirse para cada para de botones de la vista o hacer una par de funciones e invocarlas desde los botones.

Ahh y no olvides establecerle al multiview una vista por defecto (la primera a mostrar)

El funcionamiento seria mas o menos asi:

uno

Y dando click en el boton siguiente tendremos:

dos

Asi podremos insertar mas de una funcionalidad por pagina sin saturar nuestro proyecto de webforms ademas de evitarnos el envio de parametros que pueden generar inseguridad en nuestra aplicacion.

Escrito por eruano

26 noviembre 2008 a 6:17 am

Escrito en Visual Studio

Etiquetado con , , ,

Seguir

Get every new post delivered to your Inbox.