Colabora |
Web Site utilizando LinQ[Ejemplo sencillo del uso de LinQ en un Sitio Web]
Fecha: 06/Feb/2011 (28-01-11)
|
IntroducciónEmpecemos por lo básico, que es LINQ? es un componente que Microsoft incluyo en el framework .NET el cual añade la capacidad de realizar consultas nativamente (como en SQL) a través de cualquier lenguaje .NET.
Contenido
La resultado final que se espera con este ejemplo es desarrollar dos páginas Web las cuales permitan ejecutar instrucciones SQL utilizando LinQ.
La primera página esta diseñada solo para consulta de información y la segunda para almacenar datos en una tabla.
public class clsConexion { LinQ_a_SQLDataContext dc = new LinQ_a_SQLDataContext(); const int SI = 1; internal void Adicionar_Usuario(string nombre, string clave,DateTime fecha) { Usuarios usuario = new Usuarios(); usuario.usuario = nombre; usuario.clave = clave; usuario.estado = SI; usuario.fecha_alta = fecha; dc.Usuarios.InsertOnSubmit(usuario); dc.SubmitChanges(); } internal Usuarios Consultar_Usuario(int codigo) { var usu = from u in dc.Usuarios where u.cod_usuario == codigo select u; if (usu.Count() > 0) return usu.First(); else return null; } internal Usuarios Consultar_UsuarioxNombre(string nombre) { var usu = from u in dc.Usuarios where u.usuario == nombre select u; if (usu.Count() > 0) return usu.First(); else return null; } internal void BorrarUsuarioxNombre(string nombre) { var usu = from u in dc.Usuarios where u.usuario.Contains(nombre) select u; dc.Usuarios.DeleteAllOnSubmit(usu); dc.SubmitChanges(); } public void Adicionar_Perfil(string nombre, byte estado) { Perfiles perfil = new Perfiles(); perfil.perfil = nombre; perfil.estado = estado; dc.Perfiles.InsertOnSubmit(perfil); dc.SubmitChanges(); } public Perfiles Consultar_Perfil(string nombre) { var leer = from p in dc.Perfiles where p.perfil.Contains(nombre) select p; if (leer.Count() > 0) return leer.First(); else return null; } }
Después de compilar nuestra nueva clase, pasamos a implementar los métodos de cada página para su correcto funcionamiento.
protected void Page_Load(object sender, EventArgs e) { LinQ_a_SQLDataContext dc = new LinQ_a_SQLDataContext(); var consultar = from p in dc.Usuarios select new { Nombre = p.usuario, Ingreso = p.fecha_alta, Estado = Convert.ToBoolean(p.estado) }; GridView1.DataSource = consultar.Skip(1).Take(3); GridView1.DataBind(); } En la segunda página tenemos un código más complejo porque debemos permitir buscar los datos del perfil y ademas permitir Salvar nuevos registros. protected void cmdSalvar_Click(object sender, EventArgs e) { clsConexion obj = new clsConexion(); obj.Adicionar_Perfil(txtNombre.Text, Convert.ToByte(cboEstado.SelectedValue)); MostrarDatos(null); Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myAlert", "alert('El perfil ha sido adicionado.');", true); } void MostrarDatos(Perfiles x) { if (x != null) { try { txtNombre.Text = x.perfil; cboEstado.SelectedIndex = cboEstado.Items.IndexOf(cboEstado.Items.FindByValue(x.estado.ToString())); } catch (Exception e) {} } else { txtNombre.Text = String.Empty; cboEstado.SelectedIndex = 0; } } protected void cmdBuscar_Click(object sender, EventArgs e) { clsConexion obj = new clsConexion(); string v_nombre = txtNombre.Text; Perfiles p = obj.Consultar_Perfil(v_nombre); MostrarDatos(p); } Espacios de nombres usados en el código de este artículo:using System.Linq;
|
Lo comentado en este artículo está probado (y funciona) con la siguiente configuración:
El autor se compromete personalmente de que lo expuesto en este artículo es cierto y lo ha comprobado usando la configuración indicada anteriormente.
En cualquier caso, el Guille no se responsabiliza del contenido de este artículo.
Si encuentras alguna errata o fallo en algún link (enlace), por favor comunícalo usando este link:
Gracias.
Código de ejemplo (comprimido): |
Fichero con el código de ejemplo: htinoco_web_con_linQ.zip - 147.00 KB
|