Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas

viernes, 11 de octubre de 2013

Cascadeo de DropDownList con MVC

Saludos amigos, nuevamente hoy les traigo un tema muy sencillo en realidad, aunque espero en verdad en que a mas de uno le sea de utilidad, y es como cascadear los DropDownList en Razor usando MVC.
Realmente esto es muy fácil de hacer y lo voy a demostrar a continuación.
Lo que vamos a hacer es crear un DropDownList con la información de Empresas y cascadearemos este con otro DropDownList con información de las Sucursales pertenecientes a la empresa que hayamos seleccionado.
Los requisitos que para esto es tener la base de datos que hemos estado utilizando para los ejemplos, si no lo han seguido conmigo pueden descargar el script inicial aquí ya que tienen la base de datos, actualícenla con las tablas de empresa y Sucursales con el script que pueden descargar de aquí.
Ya que lo hemos ejecutado y por lo tanto actualizado nuestra base de datos, haremos lo siguiente, entraremos al archivo de modelo que ya hemos creado con anterioridad, y si no tienen el archivo de modelo pueden crear el modelo a partir de la base de datos, si no saben como hacer esto en la entrada anterior a esta explico paso a paso como hacerlo.
Bueno ya que tenemos nuestra base de datos con alguna información que para probar deben de generar, vamos a escribir el código del Controller.

Vamos a agregar la siguiente función:


   1:  public ActionResult TrabajandoConComboBox() 
   2:              return PartialView();
   3:          }

Note que yo estoy usando una vista parcial, pero funciona también con una vista normal. ya que tenemos esta función vamos a dar clic derecho sobre la función y vamos a generar la vista en la cual agregaremos la funcionalidad de los DropDownList, ya que generamos la vista vamos a regresar a esta misma función para agregar la carga inicial de nuestro primer DropDownList, aquí haremos la extracción de las empresas y la pondremos en la ViewBag de nuestra vista, la función debe de quedar de la siguiente manera:

   1:  public ActionResult TrabajandoConComboBox() 
   2:  {
   3:     Models.TutorialMVCEntities Context = new Models.TutorialMVCEntities();
   4:     var _Empresas = Context.Empresas.Select(x => new  SelectListItem{  Text = x.Nombre, Value = x.Nombre}).ToList();
   5:     ViewBag.Empresas = _Empresas;
   6:     return PartialView();
   7:  }

como podemos percatarnos estamos haciendo la extracción de la información de las empresas y con ello creamos una lista del objeto SelectListItem el cual se agregaran como las opciones de nuestro primer DropDownList el cual contendrá las empresas.

Ahora vamos a agregar esta primera funcionalidad a nuestra vista, antes de iniciar con la vista note en el código anterior que se agrega al ViewBag una variable llamada Empresas la cual es la que contiene las opciones de nuestro DropDownList, bueno, pasamos a nuestra vista y agregaremos la siguiente línea de código:

   1:  <p>
   2:     <a>Empresas: </a>
   3:      @Html.DropDownList("Empresas","")
   4:  </p>

y si quieren pueden ejecutarlo, esto les dará como resultado un DropDownList con la información de la empresas que hayan dado de alta en su base de datos.

Ya que hemos visto que funciona, vamos a lo mas interesante, vamos a obtener las sucursales que le pertenecen a la empresa que seleccionamos. vamos a regresar a nuestro controlador y agregaremos la siguiente función:

   1:  public JsonResult ObtieneSucursales(string Empresa) 
   2:  {
   3:    Models.TutorialMVCEntities Context = new Models.TutorialMVCEntities();
   4:    var _Sucursales = Context.Sucursales
   5:                     .Where(x=> x.Empresas.Nombre==Empresa)
   6:                     .Select(x => new { Id = x.Id, Nombre = x.Nombre });
   7:    return Json(_Sucursales, JsonRequestBehavior.AllowGet);
   8:  }

esta función note que devuelve los valores en JSON debido a que la actualización la realizaremos mediante javascript en un Select de HTML. aquí vemos como filtramos las sucursales de acuerdo a la empresa que se recibió como parámetro.

ahora vamos a regresar a la vista y agregamos el siguiente código debajo de el DropDownList:

   1:  <p>
   2:    <a>Sucursales: </a>
   3:    <select id="Sucursales" />
   4:  </p>

y en la parte superior agregue el siguiente script:

   1:  <script>
   2:      $(document).ready(function () {
   3:   
   4:          $("#Empresas").change(function () {
   5:              $.ajax({
   6:                  type: 'POST',
   7:                  url: '/Home/ObtieneSucursales?Empresa=' + $("#Empresas").val(),
   8:                  dataType: 'json',
   9:                  success: function (data) {
  10:                      var options = '<option value=""/>';
  11:                      for (var i = 0; i < data.length; i++) {
  12:                          options += '<option value="' + data[i].Id + '">' + data[i].Nombre + '</option>';
  13:                      }
  14:                      $("#Sucursales").html(options);
  15:                  },
  16:                  error: function (xhr, ajaxOptions, error) {
  17:                      alert(xhr.status);
  18:                      alert('Error: ' + xhr.responseText);
  19:                  }
  20:              });
  21:          });
  22:      });
  23:  </script>

y listo aquí ejecuten su proyecto y al momento de que seleccione un registro en el DropDownList de empresas inmediatamente se realizara la carga de opciones en el DropDownList de Sucursales.

Pues bueno amigos espero que este pequeñisimo tutorial sea de utilidad para ustedes.

viernes, 25 de diciembre de 2009

Tamaño de Tablas dentro de una Base de Datos de SQL

Saludos!!!!!!

Cuantas veces no nos hemos encontrado con el dilema de que necesitamos saber cuanto espacio esta ocupando nuestras tablas dentro de la base de datos de SQL, esto normalmente con el fin de realizar un informe para dar cuentas de la información que se esta cargando ó quizá para realizar un estimado de crecimiento de la base de datos, o yo que se, para algo …..  así que por estas y muchas cosas mas aquí les dejo una funcioncita no documentada de SQL que ejecutándolo en un Analizador de Consultas nos podrá dar la información que requerimos, espero que les ayude a que les sea mas leve.

sp_MSForEachtable 'sp_spaceused ''?'''

o También pueden ejecutar esta otra a ver cual les sirve mas…

SELECT SI.[rows] as 'Filas', SO.[Name] as Tabla, SI.[name] as 'Index', SFG.[groupname] as 'Filegroup' 
FROM sysobjects as SO
JOIN sysindexes as SI ON SO.[Id] = SI.[id]
JOIN sysfilegroups as SFG ON SI.[GroupId] = SFG.GroupId
ORDER BY si.[rows] DESC, SO.[Name] , SI.[name], SFG.[GroupName]

viernes, 18 de diciembre de 2009

No dudes en preguntar…..

Siempre que nos encontramos en la escuela o en algún lugar tomando un curso o yo que se en cualquier lugar, siempre nos da pena preguntar debido al “que dirán si pregunto esa tontería….”, sin embargo creo que mucho del aprendizaje que se obtiene es preguntando por lo que me gustaría que si tienen alguna duda con respecto a SQL; VB.NET, C#, WPF, no duden en preguntar.