Está en la página 1de 24

INICIO

LENGUAJES DE PROGRAMACIN

BASES DE DATOS

Breaking News

SPMySQL

Uso de radios en consultas (JSP - MySQL)

Java

Ejemplo Contraseas - Switch (NetBeans)

VisualC#SQLServer

CRUD DE CLIENTES EN N CAPAS (ASP.NET - SQL SERVER)

Darwin Durand

MicrosoftMechanics

RedesignedOffice365Admi...
PerformManagementtasksmoreEfficiently,Customize
Dashboard

Despus de unas entrevistas termin decepcionado, tantos requisitos en mi Pas y la Experiencia (Programador Junior con 4 Aos
de Experiencia). Para relajarme les traigo un Post interesante.
De frente al grano, abrimos el Visual Studio 2012 y creamos un Nuevo Proyecto, exploramos y elegimos Soluciones de Visual Studio
/ Solucin en blanco, escribimos un nombre de nuestro Proyecto y pulsamos en Aceptar.

Clic derecho sobre el Proyecto Solucin ya creado y agregamos Nuevo proyecto.

Elegimos Visual C# / Biblioteca de clases, lo ponemos como Nombre CapaDatos y pulsamos Aceptar.

Ahora ya no podemos dar clic derecho sobre el Proyecto Solucin, pero queremos agregar otro Proyecto, para ello nos vamos a
ARCHIVO / Agregar / Nuevo Proyecto.

De igual manera elegimos Biblioteca de clases y le ponemos como Nombre CapaEntidad y pulsamos en Aceptar.

Ahora si podemos elegir nuevamente, clic derecho sobre el Proyecto Solucin y Agregamos Nuevo proyecto.

Biblioteca de clases y le ponemos como Nombre CapaNegocio y pulsamos en Aceptar.

Nuevamente Agregamos Nuevo proyecto.

Ahora elegimos Visual C# / Web / Aplicacin web vaca de ASP.NET y le ponemos como nombre CapaPresentacion y pulsamos en
Aceptar.

El resultado debe ser lo siguiente:

Bien ya tenemos armado todas las capas, empezamos a agregar las referencias entre ellos para poder trabajar.
Empezamos con la Capa de Datos, en referencias hacer clic derecho y Agregar referencia con el Ensamblado System.conguration y
pulsar en Aceptar, de la misma manera Agregar referencias a Nivel de proyecto con la CapaEntidad y pulsar Aceptar.

Agregamos referencias tambin a la Capa de Negocio, pero a nivel de Proyecto con Capa de Datos y Capa de Entidad y pulsamos en
Aceptar.

Tambin Agregamos Referencia a la Capa de Presentacin a nivel de Proyecto con Capa de Entidad y Capa de Negocio y pulsamos
en Aceptar.

Bien hasta ac ya tenemos congurado listo para programar.


En el SQL Server 2012 ejecutamos el siguiente Script, que contiene la creacin de la BD, Tabla y Procedimientos Almacenados
necesarios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

createdatabaseDemoCapas
go
useDemoCapas
go
createtableclientes(
codigovarchar(5)notnullprimarykey,
nombresvarchar(50)notnull,
apellidosvarchar(100)notnull,
correovarchar(100)notnull,
estadointnotnull
)
go
createprocedureproc_insertar
@codigovarchar(5),
@nombresvarchar(50),
@apellidosvarchar(100),
@correovarchar(100),
@estadoint
as
begin

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

insertintoclientesvalues(@codigo,@nombres,@apellidos,@correo,@estado)
end
go
createprocedureproc_actualizar
@codigovarchar(5),
@nombresvarchar(50),
@apellidosvarchar(100),
@correovarchar(100)
as
begin
updateclientessetnombres=@nombres,apellidos=@apellidos,correo=@correo
wherecodigo=@codigo
end
go
createprocedureproc_consultar
@codigovarchar(5)
as
begin
selectcodigo,nombres,apellidos,correofromclientes
wherecodigo=@codigo
end
go
createprocedureproc_listar
@apellidosvarchar(100)
as
begin
selectcodigo,nombres,apellidos,correofromclientes
whereestado=1andapellidoslike@apellidos+'%'
end
go
createprocedureproc_eliminar
@codigovarchar(5),
@estadoint
as
begin
updateclientessetestado=@estado
wherecodigo=@codigo
end

Ahora conguramos la Conexin a la BD, para eso nos vamos al Web.cong de nuestro proyecto en el Visual Studio en la
CapaPresentacion.
1
2
3

?
<connectionstrings>
<addname="DemoCapas"connectionString="DataSource=(local);InitialCatalog=DemoCapas;IntegratedSecurity=True"
</connectionstrings>

En la CapaDatos agregamos una Clase y le ponemos como nombre Conexin y pegar el siguiente cdigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

usingSystem.Configuration;
namespaceCapaDatos
{
publicclassConexion
{
publicConexion()
{
}
publicstringGetConex()
{
stringstrConex=ConfigurationManager.ConnectionStrings["DemoCapas"].ConnectionString;
if(object.ReferenceEquals(strConex,string.Empty))
{
returnstring.Empty;
}
else
{
returnstrConex;
}
}
}
}

En la CapaEntidad agregamos una Clase y le ponemos como nombre ClientesEntidad y pegar el siguiente cdigo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

namespaceCapaEntidad
{
publicclassClientesEntidad
{
privatestringcodigo,nombres,apellidos,correo;
privateintestado;
publicstringcodigoCliente
{
get{returncodigo;}
set{codigo=value;}
}
publicstringnombresCliente
{
get{returnnombres;}
set{nombres=value;}
}
publicstringapellidosCliente
{
get{returnapellidos;}
set{apellidos=value;}
}
publicstringcorreoCliente
{
get{returncorreo;}
set{correo=value;}

26
27
28
29
30
31
32
33

}
publicintestadoCliente
{
get{returnestado;}
set{estado=value;}
}
}
}

En la CapaDatos agregamos una Clase y le ponemos como nombre ClientesDatos y pegar el siguiente cdigo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

usingSystem;
usingSystem.Data;
usingCapaEntidad;
usingSystem.Data.SqlClient;
namespaceCapaDatos
{
publicclassClientesDatos
{
SqlConnectioncnx;
ClientesEntidadmcEntidad=newClientesEntidad();
ConexionMiConexi=newConexion();
SqlCommandcmd=newSqlCommand();
boolvexito;
publicClientesDatos()
{
cnx=newSqlConnection(MiConexi.GetConex());
}
publicboolInsertarCliente(ClientesEntidadmcEntidad)
{
cmd.Connection=cnx;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="proc_insertar";
try
{
cmd.Parameters.Add(newSqlParameter("@codigo",SqlDbType.VarChar,5));
cmd.Parameters["@codigo"].Value=mcEntidad.codigoCliente;
cmd.Parameters.Add(newSqlParameter("@nombres",SqlDbType.VarChar,50));
cmd.Parameters["@nombres"].Value=mcEntidad.nombresCliente;
cmd.Parameters.Add(newSqlParameter("@apellidos",SqlDbType.VarChar,100));
cmd.Parameters["@apellidos"].Value=mcEntidad.apellidosCliente;
cmd.Parameters.Add(newSqlParameter("@correo",SqlDbType.VarChar,100));
cmd.Parameters["@correo"].Value=mcEntidad.correoCliente;
cmd.Parameters.Add(newSqlParameter("@estado",SqlDbType.Int));
cmd.Parameters["@estado"].Value=mcEntidad.estadoCliente;
cnx.Open();
cmd.ExecuteNonQuery();
vexito=true;
}
catch(SqlException)

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

{
vexito=false;
}
finally
{
if(cnx.State==ConnectionState.Open)
{
cnx.Close();
}
cmd.Parameters.Clear();
}
returnvexito;
}
publicboolActualizarCliente(ClientesEntidadmcEntidad)
{
cmd.Connection=cnx;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="proc_actualizar";
try
{
cmd.Parameters.Add(newSqlParameter("@codigo",SqlDbType.VarChar,5));
cmd.Parameters["@codigo"].Value=mcEntidad.codigoCliente;
cmd.Parameters.Add(newSqlParameter("@nombres",SqlDbType.VarChar,50));
cmd.Parameters["@nombres"].Value=mcEntidad.nombresCliente;
cmd.Parameters.Add(newSqlParameter("@apellidos",SqlDbType.VarChar,100));
cmd.Parameters["@apellidos"].Value=mcEntidad.apellidosCliente;
cmd.Parameters.Add(newSqlParameter("@correo",SqlDbType.VarChar,100));
cmd.Parameters["@correo"].Value=mcEntidad.correoCliente;
cnx.Open();
cmd.ExecuteNonQuery();
vexito=true;
}
catch(SqlException)
{
vexito=false;
}
finally
{
if(cnx.State==ConnectionState.Open)
{
cnx.Close();
}
cmd.Parameters.Clear();
}
returnvexito;
}
publicboolEliminarCliente(ClientesEntidadmcEntidad)
{
cmd.Connection=cnx;
cmd.CommandType=CommandType.StoredProcedure;

90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

cmd.CommandText="proc_eliminar";
try
{
cmd.Parameters.Add(newSqlParameter("@codigo",SqlDbType.VarChar,5));
cmd.Parameters["@codigo"].Value=mcEntidad.codigoCliente;
cmd.Parameters.Add(newSqlParameter("@estado",SqlDbType.Int));
cmd.Parameters["@estado"].Value=mcEntidad.estadoCliente;
cnx.Open();
cmd.ExecuteNonQuery();
vexito=true;
}
catch(SqlException)
{
vexito=false;
}
finally
{
if(cnx.State==ConnectionState.Open)
{
cnx.Close();
}
cmd.Parameters.Clear();
}
returnvexito;
}
publicDataTableListarClientes(stringparametro)
{
DataSetdts=newDataSet();
try
{
cmd.Connection=cnx;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="proc_listar";
cmd.Parameters.Add(newSqlParameter("@apellidos",parametro));
SqlDataAdaptermiada;
miada=newSqlDataAdapter(cmd);
miada.Fill(dts,"clientes");
}
catch(SqlExceptionex)
{
thrownewException(ex.Message);
}
finally
{
cmd.Parameters.Clear();
}
return(dts.Tables["clientes"]);
}
publicClientesEntidadConsultarCliente(stringcodigo)
{

140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179

try
{
SqlDataReaderdtr;
cmd.Connection=cnx;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="proc_consultar";
cmd.Parameters.Add(newSqlParameter("@codigo",SqlDbType.VarChar,10));
cmd.Parameters["@codigo"].Value=codigo;
if(cnx.State==ConnectionState.Closed)
{
cnx.Open();
}
dtr=cmd.ExecuteReader();
if(dtr.HasRows==true)
{
dtr.Read();
mcEntidad.codigoCliente=Convert.ToString(dtr[0]);
mcEntidad.nombresCliente=Convert.ToString(dtr[1]);
mcEntidad.apellidosCliente=Convert.ToString(dtr[2]);
mcEntidad.correoCliente=Convert.ToString(dtr[3]);
}
cnx.Close();
cmd.Parameters.Clear();
returnmcEntidad;
}
catch(SqlException)
{
thrownewException();
}
finally
{
if(cnx.State==ConnectionState.Open)
{
cnx.Close();
}
cmd.Parameters.Clear();
}
}
}
}

En la CapaNegocio agregamos una Clase y le ponemos como nombre ClientesNegocio y pegar el siguiente cdigo.
1
2
3
4
5
6
7

usingSystem.Data;
usingCapaEntidad;
usingCapaDatos;
namespaceCapaNegocio
{
publicclassClientesNegocio
{

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

ClientesDatos_ClienteDatos=newClientesDatos();

publicboolInsertarCliente(ClientesEntidadCliNegocio)
{
return_ClienteDatos.InsertarCliente(CliNegocio);
}

publicboolActualizarCliente(ClientesEntidadCliNegocio)
{
return_ClienteDatos.ActualizarCliente(CliNegocio);
}

publicboolEliminarCliente(ClientesEntidadCliNegocio)
{
return_ClienteDatos.EliminarCliente(CliNegocio);
}

publicDataTableListarClientes(stringparametro)
{
return_ClienteDatos.ListarClientes(parametro);
}
publicClientesEntidadConsultarCliente(stringcodigo)
{
return_ClienteDatos.ConsultarCliente(codigo);
}
}
}

En la CapaPresentacion agregamos dos Formularios Web Forms:


ListarClientes.aspx
InsertarActualizarClientes.aspx
Disear de acuerdo a las siguientes imgenes.

En ListarClientes.aspx.cs copiar y adaptar el siguiente cdigo:


1
2
3
4
5

usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingCapaNegocio;
usingCapaEntidad;

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

namespaceCapaPresentacion
{
publicpartialclassListarClientes:System.Web.UI.Page
{
ClientesNegocioClientNego=newClientesNegocio();
ClientesEntidadClientEnti=newClientesEntidad();
protectedvoidPage_Load(objectsender,EventArgse)
{
try
{
if(!Page.IsPostBack)
{
ListarDatos();
}
}
catch(Exception)
{

}
}
privatevoidListarDatos()
{
try
{
GridViewDatos.DataSource=ClientNego.ListarClientes(txtApellidosCliente.Text);
GridViewDatos.DataBind();
}
catch(Exception)
{

}
}
protectedvoidbtnNuevoCliente_Click(objectsender,EventArgse)
{
Response.Redirect("~/InsertarActualizarClientes.aspx");
}

protectedvoidbtnBuscar_Click(objectsender,EventArgse)
{
ListarDatos();
}

protectedvoidGridViewDatos_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
try
{
GridViewRowrow=GridViewDatos.Rows[e.RowIndex];
stringstrcod=Convert.ToString(row.Cells[2].Text);

56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

ClientEnti.codigoCliente=strcod;
ClientEnti.estadoCliente=0;
}
if(ClientNego.EliminarCliente(ClientEnti)==true)
{
ListarDatos();
}
else
{
}
}
catch(Exception)
{

throw;
}
}

protectedvoidGridViewDatos_RowCommand(objectsender,GridViewCommandEventArgse)
{
try
{
shortindicefila;
indicefila=Convert.ToInt16(e.CommandArgument);
stringstrcod;
if(indicefila>=0&indicefila<GridViewDatos.Rows.Count)
{
strcod=GridViewDatos.Rows[indicefila].Cells[2].Text;
if(e.CommandName=="Actualizar")
{
Session["CodigoCliente"]=strcod;
Response.Redirect("~/InsertarActualizarClientes.aspx");
}
}
}
catch(Exception)
{
}
}
protectedvoidGridViewDatos_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
try
{
GridViewDatos.PageIndex=e.NewPageIndex;
GridViewDatos.DataBind();
ListarDatos();
}
catch(Exception)
{
}

106
107
108

}
}
}

En InsertarActualizarClientes.aspx.cs copiar y adaptar el siguiente cdigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

usingSystem;
usingSystem.Web.UI;
usingCapaNegocio;
usingCapaEntidad;
namespaceCapaPresentacion
{
publicpartialclassInsertarActualizarClientes:System.Web.UI.Page
{
ClientesNegocioClientNego=newClientesNegocio();
ClientesEntidadClientEnti=newClientesEntidad();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!Page.IsPostBack)
{
MostrarDatos();
}
}
privatevoidMostrarDatos()
{
try
{
stringstrCD=Session["CodigoCliente"].ToString();
ClientEnti=ClientNego.ConsultarCliente(strCD);
{
txtCodigo.Text=ClientEnti.codigoCliente;
txtNombres.Text=ClientEnti.nombresCliente;
txtApellidos.Text=ClientEnti.apellidosCliente;
txtCorreo.Text=ClientEnti.correoCliente;
btnGrabar.Enabled=false;
btnActualizar.Enabled=true;
btnCancelar.Enabled=true;
}
}
catch(Exception)
{
}
}
protectedvoidbtnGrabar_Click(objectsender,EventArgse)
{
try
{
ClientEnti.codigoCliente=txtCodigo.Text;
ClientEnti.nombresCliente=txtNombres.Text;
ClientEnti.apellidosCliente=txtApellidos.Text;

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

ClientEnti.correoCliente=txtCorreo.Text;
ClientEnti.estadoCliente=1;

if(ClientNego.InsertarCliente(ClientEnti)==true)
{
lblMensaje.Text="RegistroGuardadoCorrectamente";
Response.Redirect("~/ListarClientes.aspx");

}
else
{
lblMensaje.Text="Errordegrabacindedatos";
}
}
catch(Exceptionexc)
{
lblMensaje.Text=exc.Message.ToString();
}
}

protectedvoidbtnActualizar_Click(objectsender,EventArgse)
{
try
{
ClientEnti.codigoCliente=txtCodigo.Text;
ClientEnti.nombresCliente=txtNombres.Text;
ClientEnti.apellidosCliente=txtApellidos.Text;
ClientEnti.correoCliente=txtCorreo.Text;
if(ClientNego.ActualizarCliente(ClientEnti)==true)
{
lblMensaje.Text="RegistroActualizadoCorrectamente";
Session.RemoveAll();
Response.Redirect("~/ListarClientes.aspx");
}
else
{
lblMensaje.Text="ErrordeActualizacindedatos";
}

}
catch(Exceptionexc)
{
lblMensaje.Text=exc.Message.ToString();
}
}

protectedvoidbtnCancelar_Click(objectsender,EventArgse)
{
MostrarDatos();
}

95
96
97
98
99
100
101
102
103

protectedvoidbtnSalir_Click(objectsender,EventArgse)
{
Session.RemoveAll();
Response.Redirect("~/ListarClientes.aspx");

}
}
}

Listo trabajo terminado, esto debe estar corriendo. Segn los comentarios estar subiendo el Archivo con CDIGO FUENTE.
Disfrtenlo!

Descargar Ejemplo

SQL Server
Courses

Twitter

Facebook

Google

Tumblr

Pinterest

Darwin Durand

También podría gustarte