Guia 8
Guia 8
Guia 8
ADO.NET
Es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a
datos y a servicios de datos. Forman parte de la biblioteca de clases base que están incluidas en el Microsoft
.NET Framework. Es comúnmente usado por los programadores para acceder y para modificar los datos
almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para
acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la
tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido
como un producto enteramente nuevo.
IV. PROCEDIMIENTO
Ejercicio #1 – Creación de base de datos usando SQL Server 2012 para que funcione como fuente de datos.
3. Entre los recursos proporcionado para esta guía, ubique el script ( guia8.sql ) y de doble clic sobre
este archivo. Luego, presione el botón “! Execute” y espere hasta que en el inferior muestre la
confirmación de consulta ejecutada exitosamente.
De clic secundario sobre la carpeta Databases del Explorer del Gestor SQL y seleccione opción Refresh.
Confirme que se ha creado la base de datos “Bolsa_Trabajo”.
4. Expanda la base datos “Bolsa Trabajo”, de clic derecho sobre subcarpeta Database Diagrams y
seleccione opción New Database Diagram. Confirme en la ventana siguiente y agregue a c/u de las
tablas.
Proceda a verificar mediante este diagrama a las relaciones entre las tablas, las cuales deben verse
como se muestra a continuación:
5. Inicia Microsoft Visual Studio y crea un nuevo Sitio Web vacio mvc, denominado
SitioWebdeSUCARNET.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace SitioWebdeSUCARNET.Models
{
public class Conexion
{
private String cadenaConexion { get; set; }
//string strcon =
public Conexion()
{
//Extrae las credenciales del webconfig
cadenaConexion = @"Data source=(local);Initial Catalog=Bolsa_Trabajo;Integrated Security=True";
switch (this.conexionSQL.State)
{
case System.Data.ConnectionState.Broken:
return true;
case System.Data.ConnectionState.Open:
return true;
default:
return false;
}
}
}
//Datos para dropdown Localidades
public List<SelectListItem> getLocalidades()
{
try
{
conectar();
List<SelectListItem> items = new List<SelectListItem>();
//crea objetos para comandos SQL
SqlCommand comando = new SqlCommand();
//crea objeto para leer datos de consulta SQL
SqlDataReader lector;
//Consulta a la tabla municipios.
comando.CommandType = System.Data.CommandType.Text;
comando.CommandText = "SELECT * FROM municipios ORDER BY sNombreMunicipio";
//Agrega los parametros para conexion al objeto comando.
comando.Connection = this.conexionSQL;
//Ejecuta la instruccion Select
lector = comando.ExecuteReader();
//verifica si, se encuentran resultados
if (lector.HasRows)
{
//Verfica que se pueden leer registros
while (lector.Read())
{
//agrega datos de datareader al Dropdownlist.
items.Add(new SelectListItem
{
Text = lector["sNombreMunicipio"].ToString(),
Value = lector["nIdMunicipio"].ToString()
});
}
lector.Close();
}
desconectar();
return items;
}
catch (SqlException error)
{
return null;
}
}
{
//Verfica que se pueden leer registros
while (lector.Read())
{
//agrega datos de datareader al Dropdownlist.
items.Add(new SelectListItem
{
Text = lector["sNombreEmpresa"].ToString(),
Value = lector["nIdEmpresa"].ToString()
});
}
lector.Close();
}
desconectar();
return items;
}
catch (SqlException error)
{
return null;
}
}
string SQL;
//crea un DataTable para almacenar todos los registros de la consulta SQL.
DataTable t = new DataTable();
//Realiza consulta a varias tablas de base datos Bolsa de Trabajo.
SQL = "SELECT categorias.sNombreCategoria, ofertas.nIdOferta, ofertas.sTituloOferta, nTipoContrato = CASE
ofertas.nTipoContrato WHEN 1 THEN 'Permanente' WHEN 2 THEN 'Por proyecto' END, nTipoJornada = CASE
ofertas.nTipoJornada WHEN 1 THEN 'Tiempo Completo' WHEN 2 THEN 'Por horas' END, ofertas.fSalario,
ofertas.dFechaPublicacion, empresas.sNombreEmpresa, municipios.sNombreMunicipio FROM municipios INNER JOIN
ofertas ON municipios.nIdMunicipio = ofertas.nIdLocalidad INNER JOIN empresas ON ofertas.nIdEmpresa =
empresas.nIdEmpresa INNER JOIN categorias ON ofertas.nIdCategoria = categorias.nIdCategoria WHERE
categorias.nIdCategoria = @nIdCategoria AND municipios.nIdMunicipio = @nIdMunicipio AND empresas.nIdEmpresa =
@nIdEmpresa";
SqlCommand comando = new SqlCommand(SQL, conexionSQL);
//asigna los valores a los parametros utilizados en la consulta.
comando.Parameters.Clear();
comando.Parameters.AddWithValue("@nIdCategoria", categoria);
comando.Parameters.AddWithValue("@nIdMunicipio", municipio);
comando.Parameters.AddWithValue("@nIdEmpresa", empresa);
//Se almacena los datos de la tabla Ofertas en el DataTable
SqlDataAdapter dataAdaptador = new SqlDataAdapter(comando);
dataAdaptador.Fill(t);
//Se modifican los nombres de la columna del DataTable
sNombreMunicipio = Convert.ToString(fila["sNombreMunicipio"])
});
}
return items;
}
items.nIdCategoria = Convert.ToString(lector["nIdCategoria"]);
items.nIdOferta = Convert.ToString(lector["nIdOferta"]);
items.sTituloOferta = Convert.ToString(lector["sTituloOferta"]);
items.nTipoJornada = Convert.ToString(lector["nTipoJornada"]);
items.fSalario = Convert.ToString(lector["fSalario"]);
items.nIdLocalidad = Convert.ToString(lector["nIdLocalidad"]);
items.nTipoContrato = Convert.ToString(lector["nTipoContrato"]);
items.dFechaPublicacion = Convert.ToString(lector["dFechaPublicacion"]);
items.dFechaContratacion = Convert.ToString(lector["FechaContratacion"]);
items.nIdEmpresa = Convert.ToString(lector["nIdEmpresa"]);
items.nTipoLocalidad = Convert.ToString(lector["nTipoLocalidad"]);
items.sDescripcion = Convert.ToString(lector["sDescripcion"]);
items.nVacantes = Convert.ToString(lector["nVacantes"]);
}
lector.Close();
desconectar();
return items;
}
catch (SqlException error)
{
return null;
}
}
try
{
//asigna los valores a los parametros utilizados en la consulta.
comando.Parameters.AddWithValue("@p1", nIdEmpresa);
comando.Parameters.AddWithValue("@p2", sTituloOferta);
comando.Parameters.AddWithValue("@p3", nTipoJornada);
comando.Parameters.AddWithValue("@p4", nTipoContrato);
comando.Parameters.AddWithValue("@p5", fSalario);
comando.Parameters.AddWithValue("@p6", nIdLocalidad);
comando.Parameters.AddWithValue("@p7", nTipoLocalidad);
comando.Parameters.AddWithValue("@p8", nIdCategoria);
comando.Parameters.AddWithValue("@p9", Convert.ToDateTime(fechaPublicacion));
comando.Parameters.AddWithValue("@p10", sDescripcion);
comando.Parameters.AddWithValue("@p11", Convert.ToDateTime(fechaContratacion));
comando.Parameters.AddWithValue("@p12", nVacantes);
public int actualizarOferta(int idOferta, int nIdEmpresa, String sTituloOferta, int nTipoJornada, int nTipoContrato,
double fSalario, int nIdLocalidad, int nTipoLocalidad, int nIdCategoria, String sDescripcion,
String fechaContratacion, int nVacantes)
{
//Consulta Update SQL a tabla ofertas
String queryUpdate = "update ofertas set
nIdEmpresa=@p1,sTituloOferta=@p2,nTipoJornada=@p3,nTipoContrato=@p4,fSalario=@p5,nIdLocalidad=@p6,nTipoL
ocalidad=@p7,nIdCategoria=@p8,sDescripcion=@p9,fechaContratacion=@p10,nVacantes=@p11 where nIdOferta=" +
idOferta;
SqlCommand comando = new SqlCommand();
comando.CommandType = System.Data.CommandType.Text;
comando.CommandText = queryUpdate;
comando.Connection = this.conexionSQL;
try
{
//asigna los valores a los parametros utilizados en la consulta.
comando.Parameters.AddWithValue("@p1", nIdEmpresa);
comando.Parameters.AddWithValue("@p2", sTituloOferta);
comando.Parameters.AddWithValue("@p3", nTipoJornada);
comando.Parameters.AddWithValue("@p4", nTipoContrato);
comando.Parameters.AddWithValue("@p5", fSalario);
comando.Parameters.AddWithValue("@p6", nIdLocalidad);
comando.Parameters.AddWithValue("@p7", nTipoLocalidad);
comando.Parameters.AddWithValue("@p8", nIdCategoria);
comando.Parameters.AddWithValue("@p9", sDescripcion);
comando.Parameters.AddWithValue("@p10", Convert.ToDateTime(fechaContratacion));
comando.Parameters.AddWithValue("@p11", nVacantes);
//Realizar el actualización a la tabal oferta desde la aplicación.
return comando.ExecuteNonQuery();
}
catch (SqlException error)
{
return 0;
}
}
}
}
}
}
Datos.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SitioWebdeSUCARNET.Models{
public class Datos {
public List<Datos> DatosOfertas { get; set; }
public String sNombreCategoria { get; set; }
public String nIdOferta { get; set; }
public String sTituloOferta { get; set; }
public String nTipoContrato { get; set; }
Empresa.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SitioWebdeSUCARNET.Models{
public class Empresa
{
public List<SelectListItem> Empresas { get; set; }
public int nIdEmpresa;
public string sNombreEmpresa;
public string sPathImage;
public string sDescripcion;
public string sTelefono;
public string sDireccion;
public string sEmail;
}
}
Localidad.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SitioWebdeSUCARNET.Models
{
public class Localidad
{
public List<SelectListItem> Localidades { get; set; }
Ejercicio #3 – Index.aspx
1. Ahora, proceda a agregar un nuevo Controlador con nombre “HomeController”. En este controlador
harmeos los métodos necesarios para poder filtrar datos desde la base de datos y mostrarlos a través
de un webgridview. Proceda a digital el siguiente código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using SitioWebdeSUCARNET.Models;
namespace SitioWebdeSUCARNET.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
//Dropdown categorias
categorias ct = new categorias();
Conexion obj = new Conexion();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
//Ofertas
ViewBag.Ofertas = obj.CargarDatos();
return View();
}
[HttpPost]
public ActionResult Index(string OpcionesCat, string OpcionesLoc, string OpcionesEmp)
{
int dcat, dloc, demp;
dcat = Convert.ToInt16(OpcionesCat);
dloc = Convert.ToInt16(OpcionesLoc);
demp = Convert.ToInt16(OpcionesEmp);
//Dropdown categorias
categorias ct = new categorias();
Conexion obj = new Conexion();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
//Ofertas
ViewBag.Ofertas = obj.CargarDatos(dcat, dloc, demp);
return View();
}
}
}
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-
collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Pagina Principal", "Index", "Home", new { area = "" }, new { @class =
"navbar-brand" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
</ul>
</div>
</div>
<div class="body-content">
@RenderBody()
</div>
<hr />
<footer class="modal-footer navbar-inverse navbar-fixed-bottom">
@Html.ActionLink( @DateTime.Now.Year + "- DESARROLLO DE SOFTWARE PROPIETARIO", "Index", "Home",
new { area = "" }, new { @class = "navbar-brand" })
</footer>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
</html>
Ejercicio #4 – Nuevo
[HttpPost]
public ActionResult Ingresardatos(string OpcionesCat, string OpcionesLoc, string OpcionesEmp,
string sTituloOferta, string TipoJ, string TipoC, string fSalario, string TipoL,
string dFechaPublicacion, string dFechaContratacion, string sDescripcion, string nVacantes
)
{
Conexion obj = new Conexion();
obj.conectar();
obj.nuevaOferta(int.Parse(OpcionesEmp), sTituloOferta, int.Parse(TipoC), int.Parse(TipoJ),
double.Parse(fSalario), int.Parse(OpcionesLoc), int.Parse(TipoL), int.Parse(OpcionesCat),
dFechaPublicacion, sDescripcion, dFechaContratacion, int.Parse(nVacantes));
obj.desconectar();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
//Ofertas
Datos data = new Datos();
data.DatosOfertas = obj.CargarDatos(dcat, dloc, demp);
ViewBag.Ofertas = data.DatosOfertas;
return View("Index");
}
2. Ahora debera crear una nueva vista de nombre “Nuevo.cshtml”, y proceda a digitar el siguiente
código dentro de ella:
@model SitioWebdeSUCARNET.Models.Datos
@{
ViewBag.Title = "Bolsa de Trabajo en Línea";
}
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Ingrese la informacion en los campos siguientes para adicionar una nueva oferta de trabajo</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.Label("Categoria", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesCat", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.sNombreCategoria, "", new { @class = "text-danger"
})
</div>
</div>
<div class="form-group">
@Html.Label("Titulo de la Oferta", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.sTituloOferta, new { htmlAttributes = new { @class = "form-
control" } })
@Html.ValidationMessageFor(model => model.sTituloOferta, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Contrato", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoC", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoContrato, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Jornada", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoJ", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoJornada, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Localidad", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoL", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoLocalidad, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Salario", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.fSalario, new { htmlAttributes = new { @class = "form-control"
} })
@Html.ValidationMessageFor(model => model.fSalario, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Fecha de Publicación", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.dFechaPublicacion, new { htmlAttributes = new { @class =
"form-control", RegularExpressionAttribute= @"^([0-2][0-9]|3[0-1])(\/|-)(0[1-9]|1[0-2])\2(\d{4})$" } })
@Html.ValidationMessageFor(model => model.dFechaPublicacion, "", new { @class = "text-danger"
})
</div>
</div>
<div class="form-group">
@Html.Label("Empresa", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesEmp", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.sNombreEmpresa, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Fecha de Contratación", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.dFechaContratacion, new { htmlAttributes = new { @class =
"form-control", RegularExpressionAttribute = @"^([0-2][0-9]|3[0-1])(\/|-)(0[1-9]|1[0-2])\2(\d{4})$" } })
@Html.ValidationMessageFor(model => model.dFechaContratacion, "", new { @class = "text-
danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Numero de Vacantes", new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div class="form-group">
@Html.Label("Localidades", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesLoc", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoLocalidad, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Descripción", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.sDescripcion, new { htmlAttributes = new { @class = "form-
control", @cols = 80, @rows = 50 } })
@Html.ValidationMessageFor(model => model.sDescripcion, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Ver Lista de Ofertas", "Index")
</div>
Ejercicio #5 – Editar
//Dropdown categorias
categorias ct = new categorias();
Conexion obj = new Conexion();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
return View(obj.mostraroferta(int.Parse(nIdOferta)));
}
[ActionName("Actualizar")]
public ActionResult Update(string nIdOferta, string OpcionesCat, string OpcionesLoc, string
OpcionesEmp,
string sTituloOferta, string TipoJ, string TipoC, string fSalario, string TipoL,
string dFechaPublicacion, string dFechaContratacion, string sDescripcion, string nVacantes
)
{
Conexion obj = new Conexion();
obj.conectar();
obj.actualizarOferta(int.Parse(nIdOferta), int.Parse(OpcionesEmp), sTituloOferta,
int.Parse(TipoJ), int.Parse(TipoC), double.Parse(fSalario), int.Parse(OpcionesLoc), int.Parse(TipoL),
int.Parse(OpcionesCat), sDescripcion, dFechaContratacion, int.Parse(nVacantes));
obj.desconectar();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
//Ofertas
Datos data = new Datos();
data.DatosOfertas = obj.CargarDatos(dcat, dloc, demp);
ViewBag.Ofertas = data.DatosOfertas;
return View("Index");
}
2. Ahora debera crear una nueva vista de nombre “Editar.cshtml”, y proceda a digitar el siguiente
código dentro de ella:
@model SitioWebdeSUCARNET.Models.Datos
@{
ViewBag.Title = "Editar";
}
<h2>Editar</h2>
<div class="form-horizontal">
<h4>Datos</h4>
<hr />
<div class="form-group">
@Html.Label("ID Oferta", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.nIdOferta, new { htmlAttributes = new { @class = "form-
control", @disabled="disabled" } })
@Html.ValidationMessageFor(model => model.nIdOferta, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Categoria", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesCat", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.sNombreCategoria, "", new { @class = "text-danger"
})
</div>
</div>
<div class="form-group">
@Html.Label("Titulo de la Oferta", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.sTituloOferta, new { htmlAttributes = new { @class = "form-
control" } })
@Html.ValidationMessageFor(model => model.sTituloOferta, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Contrato", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoC", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoContrato, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Jornada", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoJ", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoJornada, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Tipo Localidad", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("TipoL", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoLocalidad, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Salario", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.fSalario, new { htmlAttributes = new { @class = "form-control"
} })
@Html.ValidationMessageFor(model => model.fSalario, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Fecha de Publicación", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.dFechaPublicacion, new { htmlAttributes = new { @class = "form-
control" } })
@Html.ValidationMessageFor(model => model.dFechaPublicacion, "", new { @class = "text-danger"
})
</div>
</div>
<div class="form-group">
@Html.Label("Empresa", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesEmp", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.sNombreEmpresa, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Fecha de Contratación", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.dFechaContratacion, new { htmlAttributes = new { @class =
"form-control" } })
@Html.ValidationMessageFor(model => model.dFechaContratacion, "", new { @class = "text-danger"
})
</div>
</div>
<div class="form-group">
@Html.Label("Numero de Vacantes", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.nVacantes, new { htmlAttributes = new { @class = "form-control"
} })
@Html.ValidationMessageFor(model => model.nVacantes, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Localidades", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("OpcionesLoc", null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.nTipoLocalidad, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.Label("Descripción", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.sDescripcion, new { htmlAttributes = new { @class = "form-
control", @cols = 80, @rows = 50 } })
@Html.ValidationMessageFor(model => model.sDescripcion, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button type="submit" id="btnBuscar" class="btn btn-lg btn-primary "
onclick="location.href('@Url.Action("Actualizar","Home")')">Guardar</button>
</div>
</div>
</div>
<div>
@Html.ActionLink("Back to List", "Index")
</div>
}
Ejercicio #6 – Eliminar
//Dropdown categorias
categorias ct = new categorias();
ct.Categorias = obj.getCategorias();
ViewBag.OpcionesCat = ct.Categorias;
//Dropdown empresa
Empresa emp = new Empresa();
emp.Empresas = obj.getEmpresas();
ViewBag.OpcionesEmp = emp.Empresas;
//Dropdown localidad
Localidad loc = new Localidad();
loc.Localidades = obj.getLocalidades();
ViewBag.OpcionesLoc = loc.Localidades;
//Ofertas
Datos data = new Datos();
data.DatosOfertas = obj.CargarDatos();
ViewBag.Ofertas = data.DatosOfertas;
return View("Index");
}
V. DISCUSION DE RESULTADOS
VI. BIBLIOGRAFÍA
1. Thierry GROUSSARD. (2013). C# 5: Los fundamentos del lenguaje – Desarrollar con Visual Studio 2012.
Barcelona: ENI.