Para terminar este tutorial desarrollaremos la pantalla de usuarios del sistema, poniendo atención se puede aprender como hacer también la pantalla de productos y unidades de medida.
Agregamos una nueva página llamada administrar.aspx, seleccioamos la Master page (main.master). el código HTML de administrar.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/main.master" AutoEventWireup="true" CodeFile="administrar.aspx.cs" Inherits="administrar" %> <asp:Content ID="cntMain" ContentPlaceHolderID="cphMain" Runat="Server"> <h3><a href="user-lista.aspx">Usuarios del Sistema</a></h3> </asp:Content>Luego agregamos una página llamada users-lista.aspx, la cualtendrá la siguiente apariencia:
Para lograr esaapariencia, este es el código HTML:
<asp:content contentplaceholderid="cphMain" id="cntMain" runat="Server"> <h3> Usuarios del Sistema</h3> <table style="width: 100%;"> <tbody> <tr> <td style="border-right-color: silver; border-right-style: dotted; border-right-width: 1px; text-align: left; vertical-align: top; width: 200px;"><a href="http://www.blogger.com/user.aspx?id=0">Nuevo Usuario</a> </td> <td style="text-align: left; vertical-align: top; width: 580px;"><asp:label id="lblMessage" runat="server" text=""></asp:label> <asp:gridview autogeneratecolumns="False" id="grdLista" runat="server" width="100%"> <columns> <asp:templatefield> <itemtemplate> <a %="" href="http://www.blogger.com/user.aspx?id=<%#Eval(" user_login?)="">">Editar</a> </itemtemplate> <itemstyle width="16"> <headertemplate> Editar </headertemplate> </itemstyle></asp:templatefield> <asp:boundfield datafield="user_login" headertext="Usuario"> <headerstyle horizontalalign="Left"> <itemstyle horizontalalign="Left"> </itemstyle></headerstyle></asp:boundfield> <asp:boundfield datafield="nombre" headertext="Nombre completo"> <headerstyle horizontalalign="Left"> <itemstyle horizontalalign="Left"> </itemstyle></headerstyle></asp:boundfield> </columns> </asp:gridview> </td> </tr> </tbody></table> </asp:content>Luego, el código C# en user-lista.aspx.cs:
protected void Page_Load(object sender, EventArgs e){ try{ if (!Context.User.Identity.IsAuthenticated){ FormsAuthentication.RedirectToLoginPage("login.aspx"); } else{ if (!Page.IsPostBack){ ReadData(); } } } catch (Exception ex){ lblMessage.Text = ex.Message; } } void ReadData() { try{ SqlConnection cnn = new SqlConnection(clsMain.CnnStr); cnn.Open(); SqlDataAdapter da = new SqlDataAdapter("SELECT user_login, nombre " + " FROM users ", cnn); DataSet ds = new DataSet(); da.Fill(ds, "USERS"); grdLista.DataSource = ds.Tables["USERS"]; grdLista.DataBind(); cnn.Close(); cnn.Dispose(); ds.Dispose(); da.Dispose(); } catch (Exception ex){ lblMessage.Text = ex.Message; } }Luego sigue agregar la página user.aspx, la cual tendrá el siguiente diseño:
El código HTML:
<asp:content contentplaceholderid="cphMain" id="cntMain" runat="Server"> <h3> Usuarios del Sistema</h3> <table style="width: 100%;"> <tbody> <tr> <td style="border-right-color: silver; border-right-style: dotted; border-right-width: 1px; text-align: left; vertical-align: top; width: 200px;"><asp:linkbutton id="btnGrabar" onclick="btnGrabar_Click" runat="server" tooltip="Clic aqui para grabar">Grabar</asp:linkbutton> <a href="http://www.blogger.com/user-lista.aspx">Cancelar</a> </td> <td style="text-align: left; vertical-align: top; width: 580px;"><table> <tbody> <tr> <td>Usuario:</td> <td><asp:textbox id="txtUSER_LOGIN" maxlength="50" runat="server" width="150"></asp:textbox> </td> </tr> <tr> <td>Nombre:</td> <td><asp:textbox id="txtNOMBRE" maxlength="50" runat="server" width="150"></asp:textbox></td> </tr> <tr> <td>Contraseña:</td> <td><asp:textbox id="txtUSER_PASSWORD" maxlength="50" runat="server" width="150"></asp:textbox></td> </tr> <tr> <td>Activo:</td> <td><asp:checkbox id="chkACTIVO" runat="server"> </asp:checkbox></td> </tr> <tr> <td>Ventas:</td> <td><asp:checkbox id="chkVENTAS" runat="server"> </asp:checkbox></td> </tr> <tr> <td>Reportes:</td> <td><asp:checkbox id="chkREPORTES" runat="server"> </asp:checkbox></td> </tr> <tr> <td>Administrar:</td> <td><asp:checkbox id="chkADMINISTRAR" runat="server"> </asp:checkbox></td> </tr> </tbody></table> </td> </tr> </tbody></table> <asp:label id="lblMensaje" runat="server" text=""></asp:label> </asp:content>Luego, el código C# de user.aspx.cs:
protected void Page_Load(object sender, EventArgs e){ try{ if (!Page.IsPostBack){ if (!Context.User.Identity.IsAuthenticated){ FormsAuthentication.RedirectToLoginPage("login.aspx"); } else{ if (Request.Params["id"].ToString() == "0"){ //Nuevo btnGrabar.Enabled = true; } else{ //editar txtUSER_LOGIN.Enabled = false; ReadData(Request.Params["id"].ToString()); } } } } catch (Exception ex){ lblMensaje.Text = ex.Message; } } void ReadData(string prmUSER_LOGIN){ try{ SqlConnection cnn = new SqlConnection(clsMain.CnnStr); cnn.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM users WHERE user_login ='"+ prmUSER_LOGIN +"'", cnn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()){ txtUSER_LOGIN.Text = dr["USER_LOGIN"].ToString(); txtUSER_PASSWORD.Text = dr["USER_PASSWORD"].ToString(); txtNOMBRE.Text = dr["NOMBRE"].ToString(); chkACTIVO.Checked = Convert.ToBoolean(dr["ACTIVO"]); chkVENTAS.Checked = Convert.ToBoolean(dr["VENTAS"]); chkREPORTES.Checked = Convert.ToBoolean(dr["REPORTES"]); chkADMINISTRAR.Checked = Convert.ToBoolean(dr["ADMINISTRAR"]); } dr.Close(); cnn.Close(); cmd.Dispose(); cnn.Dispose(); } catch (Exception ex){ lblMensaje.Text = ex.Message; } } bool fnRegistro(string prmUSER_LOGIN, string prmUSER_PASSWORD, string prmNOMBRE, int prmACTIVO, int prmREPORTES, int prmVENTAs, int prmADMINISTRAR){ try{ SqlConnection cnn = new SqlConnection(clsMain.CnnStr); cnn.Open(); string varSQL = "execute proc_USERS '" + prmUSER_LOGIN + "'," + "'" + prmUSER_PASSWORD + "','" + prmNOMBRE + "'," + prmACTIVO + "," + prmREPORTES + "," + "" + prmVENTAs + "," + prmADMINISTRAR + " "; SqlCommand cmd = new SqlCommand(varSQL, cnn); cmd.ExecuteNonQuery(); cnn.Close(); cnn.Dispose(); cmd.Dispose(); return (true); } catch (Exception ex){ lblMensaje.Text = ex.Message; return (false); } } protected void btnGrabar_Click(object sender, EventArgs e){ try{ if (fnRegistro(txtUSER_LOGIN.Text,txtUSER_PASSWORD.Text,txtNOMBRE.Text, Convert.ToInt32(chkACTIVO.Checked), Convert.ToInt32(chkREPORTES.Checked), Convert.ToInt32(chkVENTAS.Checked), Convert.ToInt32(chkADMINISTRAR.Checked))) { Response.Redirect("user-lista.aspx"); } } catch (Exception ex){ lblMensaje.Text = ex.Message; } }Para terminar, escribimos el siguiente procedimiento almacenado en el SQL Server:
USE [pventa] GO /****** Object: StoredProcedure [dbo].[proc_USERS] Script Date: 09/23/2011 15:07:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[proc_USERS] @USER_LOGIN NVARCHAR(50), @USER_PASSWORD VARCHAR(8000), @NOMBRE NVARCHAR(50), @ACTIVO BIT, @REPORTES BIT, @VENTAS BIT, @ADMINISTRAR BIT AS /* USUARIOS DEL SISTEMA FECHA:24-OCT-2011 PROGRAMADOR:J. GABRIEL CASTILLO MAIL: jgcastillo@uat.edu.mx,muskin@msn.com */ BEGIN TRANSACTION tUSERS IF NOT EXISTS(SELECT 1 FROM users WHERE user_login=@USER_LOGIN) BEGIN INSERT INTO USERS(USEr_LOGIN,USER_PASSWORD,NOMBRE,activo,reportes,ventas,administrar) VALUES(@USER_LOGIN,@USER_PASSWORD,@NOMBRE,@ACTIVO,@REPORTES,@VENTAS,@ADMINISTRAR) END ELSE BEGIN UPDATE USERS SET NOMBRE=@NOMBRE, activo=@ACTIVO, reportes=@REPORTES, ADMINISTRAR=@ADMINISTRAR, VENTAS=@VENTAS WHERE user_login=@USER_LOGIN END COMMIT TRANSACTION tUSERS RETURN ERROR: RAISERROR('No se puede ejecutar la acción solicitada,16,1) ROLLBACK TRANSACTION tUSERS GOTO FIN RETURN FIN: GOListo, hemos terminado.
HASTA EL SIGUIENTE TUTORIAL, DIOS LOS BENDIGA
Muchas gracias, estoy al pendiente de la proxima publicación, era lo que esperaba, c# + ASP.NET + SQL
ResponderEliminarExcelente!!
Muchas gracias por este excelente tutorial, podrias enviarme el codigo a mi correo porfavor. Mi email es maur047(arroba)hotmail.com
ResponderEliminarMuchas gracias, es un excelente aporte.
ResponderEliminarMuchisimas gracias por tu aporte, me ha servido de maravilla, espero el siguiente tutorial!!
ResponderEliminarHermano le heche una ojeada a tu tuto y se ve muy bien yo no se ni gota de ASP pero pretendo aprender y al encontrar este ejemplo me dio gusto ya que podre aprender de forma práctica y no como en los libros que solo escriben pura paja y nada practico. eh hora buena hermano gracias por el excelente aporte nuevamente
ResponderEliminarhola me podrias enviar el codigo fuente porfavor me gustaria estudiarlo para poder aplicarlo y tratar de utilizarlo mi correo es jose_manuel1622@hotmail.com saludos cordiales !!
ResponderEliminarMuy buena ayuda, terrible entrada te mandaste, sólo me quedan algunas sugerencias pero detalles, y como dice el anonimo de arriba, me dio gusto encontrar este ejemplo. Saludos!
ResponderEliminarPuedes Mostrar el Codigo o enviarme el codigo para ayudar a mejorarlo? Obvio que las modificaciones tb las dare y podemos subirlo a GitHub no se nestor.davila@rocketmail.com
ResponderEliminarola muy bueno tu tutorial sobre asp.net, por favor necesito aprender asp.net y eso me ba servir vastante podrias enviarme ami correo.es:
ResponderEliminar(yomaco2@hotmail.com) gracias..
hola que tal excelente tuto, aun me queda algo medio vago con respecto a la conexzion sql podrias enviarme el zip o rar completo porfavor sky_diver_01@live.com
ResponderEliminarHola excelente tutorial, no se si me puedas enviar el codigo a mi correo, muchas gracias vleim_angel@hotmail.com
ResponderEliminarestare eternamente agradecido
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola amigos soy nuevo en esto, me prodrian ayudar en la parte de editar un usuario, me vota error.
ResponderEliminarEn la pagina users-lista.aspx, para modificar necesito enviarle el código del usuario pero
me sale error en la siguiente instrucción
">Editar
URGENTE ...
Puedes probar con esto:
Eliminar">Editar
Saludos!!
Excelente material, estoy muy verde en esto y estoy seguro que me sera de mucha utilidad, muchisi++++++++++++++++++ gracias................
ResponderEliminarBuenas tardes. Alguien pódría enviarme el código de la parte 2, donde se lleva a cao el REPLACE,o me pudiesen enviar el código completo.
ResponderEliminaranexo mi dirección. Gracias.
fabvader@hotmail.com
darthsolitude@gmail.com
Muy Interesante el tutorial, podrias enviarme el codigo completo por favor... ifmm87@gmail.com, de antemano gracias
ResponderEliminarBuen tutorial... podrían enviarme el sistema a mi correo: tkd_ddm@outlook.com
ResponderEliminarmuchas gracias
Que buen aporte haz hecho a la comunidad, te felicito!!!
ResponderEliminarmuy bueno, ahora a estudiar este sistema. Gracias.
ResponderEliminarBuan dia muy buen tutorial lo he estado siguiendo pero tengo algunos inconvenientes en mi acceso a internet por lo que te pido el favor si tienes el codigo por favor me lo envies a mi correo darwin_mn@hotmail.com
ResponderEliminarmuchisimas gracias
y felicitaciones por compartir aportes como estos
exelente tutorial hermano,si puedieras enviar el codigo a mi correo: juancaryboy@hotmail.com
ResponderEliminarbueno espero que me funcione el nuevo lenguaje C++ ya que uso vb.net pero probare de alli te escribire si me ayudo mucho este proyecto ya que estoy como loco buscando terminarlo expondre dentro de poco no sabes cuanto me sirven sus aportes informaticos
ResponderEliminaramigos a ver quien me puede ayudar con la ultima parte no se si los ultimos webform llevan masterpage o no??
ResponderEliminarOtra consulta alguine pudo completar la parte del Remmplace con los menus de reportes que no me sirvieron cualquier ayuda al correo blemus_100@hotmail.com o aqui mismo gracias
ResponderEliminarHola excelente aporte, como el 90% de los que comentan, tambien soy novato, me gustaria saber como hago para hacer esto mismo pero con un carrito de compras y si me puedes enviar el fuente o publicarlo en alguna pagina o servidor seria menos canson para ti, ya que todos queremos el codigo fuente, mi mail es coolglos@gmail.com.
ResponderEliminarGracias
Muchas gracias por el tutorial, excelente. me servirá de mucho, podrías enviármelo a mi correo?, es diabloe_manuel@hotmail.com.
ResponderEliminarmuchas gracias.
Saludos
Muchas gracias por el tutorial, se que me sera de mucha ayuda, no se si me podrian enviar el codigo a mi correo jes_sua_love@hotmail.com
ResponderEliminarQue cantidad de conchudos todos los que piden el código ya listico. Trabajen un ratico haber si aprenden alguna cosa....
ResponderEliminarToda la razon, hacer un tutorial explicativo como este cuesta tiempo y trabajo, lo menos que podemos hacer es retribuir la gran ayuda que se nos da de forma gratuita, haciendo nosotros mismo el codigo ya expuesto....
EliminarOsea: NO SEAN FLOJOS!!!!
Necesito de su ayuda
ResponderEliminartengo un error al crear el modulo user-lista
esta linea de codigo me dife que le faltan unas comilla pero no se donde.
Porfis me urgeeee!!!!!!
">Editar
porfavor enviarme mi correo jorgeluisrc1010@gmail.com
ResponderEliminarhola tengo problemas con la parte de usuarios donde hace referencia al template, alguien lo pudo corregir?
ResponderEliminar(asp:templatefield>
(a %="" href="http://www.blogger.com/user.aspx?id=<%#Eval(" user_login?)="">>Editar</itemtemplate)