Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJES DE PROGRAMACIN
BASES DE DATOS
Breaking News
SPMySQL
Java
VisualC#SQLServer
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.
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.
Ahora elegimos Visual C# / Web / Aplicacin web vaca de ASP.NET y le ponemos como nombre CapaPresentacion y pulsamos en
Aceptar.
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.
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);
}
}
}
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
}
}
}
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
Tumblr
Darwin Durand