Acceso a Datos Razor y WebMatrix II - Código Program

Breaking

martes, 29 de julio de 2014

Acceso a Datos Razor y WebMatrix II


Esta es la segunda parte de acceso a datos continuaremos con el ejercicio anterior, veremos como validar datos, a la vez como recuperar dichos datos que se encuentren almacenados.


Para hacer una consulta a la base de datos tendremos y muestre los datos almacenados lo aremos de la siguiente forma:
 <!--Recuperar Datos-->
        @{
            var db = Database.Open("CogProgDatos");
            var con = "Select Autor, Asunto, Mensaje from Mensajes ORDER BY ID ";
        }
        <fieldset>
            <legend>Mensajes</legend>
        @foreach(var filas in db.Query(con))
        {
            <p>
            De : @filas.Autor
                <br>
            Asunto: @filas.Asunto
                <br>
                Mensaje: @filas.Mensaje
            </p>
        <hr>
        }
        </fieldset>

Lo que hacemos es crear una variable con nombre "db" para abrir la BD, luego otra para poner la consulta SELECT, una vez tengamos esas dos variables creamos un FOREACH le creamos una condición, llamamos los campos de la tabla y los ordenamos a nuestro gusto, recuerden que este codigo lo tendrian que pegar debajo del que realizamos en el ejemplo anterior, En el navegador se veria asi.

Ahora tendremos que validar los datos para ellos tendremos que hacer una modificación al código que teníamos anterior mente en la parte superior arriba del <!DOCTYPE html> escribimos lo siguiente.
@{
  var autor = Request["Autor"]; 
  var asunto = Request["Asunto"];
  var mensaje = Request["Mensaje"];
  <!--Validar Datos-->
        
  if(IsPost){
  if(autor.IsEmpty()){
    ModelState.AddError("ErrorAutor","* Autor de la publicación no puede estar vacío");
                }
  if(asunto.IsEmpty()){
    ModelState.AddError("ErrorAsunto","* Asunto de la publicación no puede estar vacío");
                }
  if(mensaje.IsEmpty()){
    ModelState.AddError("ErrorMensaje","* Mensaje de la publicación no puede estar vacío");
                }
            }
            
}

Ahora al formulario le tendremos que agregar los mensajes de Error que hemos creado, lo aremos de esta forma solo agregaremos estas tres lineas sombreadas.

<fieldset>
            <legend>formulario de mensajes CodigoProgram</legend>
            <form method="post" action="">
                
                Autor  : @Html.TextBox("Autor")
                @Html.ValidationMessage("ErrorAutor")
                <br />
                <br />
                Asunto : @Html.TextBox("Asunto")
                @Html.ValidationMessage("ErrorAsunto")
                <br />
                <br />
                Mensaje: @Html.ValidationMessage("ErrorMensaje")
                <br/> 
                @Html.TextArea("Mensaje", new{rows = 10, columns = 50})
                <br>
                <input type="submit" name="Enviar" />
            </form>
        </fieldset>

Ahora solo eliminamos las 3 variables que declaramos en la sección de guardar (var autor = Request["Autor"];var asunto = Request["Asunto"];var mensaje = Request["Mensaje"]; ), ya que dichas variables las declaramos nuevamente en la sección de la validación de datos, unicamente al "if" le cambiamos condición.

  <!--Guardar datos-->
        @{
          if(IsPost && ModelState.IsValid)
           {
               Database.Open("CogProgDatos")
                       .Execute("Insert into mensajes(Autor,Asunto,Mensaje)"+ 
                                "values(@0,@1,@2)",autor,asunto,mensaje);
                       <H3>@Html.Label("Mesaje Enviado con Exito") </H3>
           }
          }

Final mente solo nos resta probar el proyecto si todo esta bien, intentemos enviar un mensaje con los campos vacíos, tendríamos que ver los mensajes de error.


Conclusión:

Con la validación de datos evitamos tener datos vacíos, o datos que no tienen que existir dentro de la estructura de la BD si quieres descargar el proyecto lo puedes hacer desde aqui.

No hay comentarios:

Publicar un comentario