Después de haber realizado en primer proyecto Hola Razor en WebMatrix 3 ahora iremos un poco mas adelante y es el acceso a datos. El objetivo de este tutorial es ver como WebMatrix nos permite trabajar con bases de datos loca sin problemas.
Lo que primero que aremos es crear un nuevo proyecto de la galería de plantillas.
Escogeremos una plantilla de Sitio Vació y le ponemos un nombre cualquiera en mi caso CogProgDatos.
Nos dirigimos a al Administrador de Bases de datos de WebMatrix.
Creamos una nueva Base de Datos de SQL Server CE
Le damos el nombre que queramos en mi caso se la dejo por defecto "CogProgDatos.sdf" en la parte de abajo hay un opcion llamada tabla damos clic derecho y seleccionamos Nueva Tabla.
Enseguida creamos una nueva tablan sera una tabla para dejar mensajes en nuestra pagina, de nombre mensajes ,Un campo ID,tipo INT, clave primaria, es identidad. Los demás campos son: Autor,Asunto y Mensaje todos de tipo nvarchar(50)
Ahora que tenemos nuestra base de datos tendremos que armar un formulario para insertar datos a nuestra tabla "mensajes". Regresamos a Archivos, y en la pagina Default.cshtml de nuestro proyecto es donde crearemos el formulario lo podemos hacer de forma típica con etiquetas HTML pero lo aremos con Razor, para enviar la información lo aremos desde un <form></form> para crear el formulario escribimos lo siguiente:
<fieldset>
<legend>formulario de mensajes CodigoProgram</legend>
<form method="post" action="">
Autor : @Html.TextBox("autor")
<br />
<br />
Asunto : @Html.TextBox("asunto")
<br />
<br />
Mensaje:<br/> @Html.TextArea("mensaje", new{rows = 10, columns = 50})
<br>
<input type="button" value="Enviar" />
</form>
</fieldset>
No tiene nada de impresionante el codigo del formulario en este momento no hace nada los textbox y area no capturan datos aun, en el navegador se vería así:
Ahora nos hace falta capturar los datos escritos en el formulario lo aremos de la siguiente forma, debajo del código anterior escribimos el siguiente:
@{ var autor = Request["Autor"]; var asunto = Request["Asunto"]; var mensaje = Request["Mensaje"]; if(IsPost) { 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> } }
Si todo esta bien los datos se guardaran para probar que todos funcione lo ejecutamos y llenamos el formulario:
Si los datos se guardaron con éxito tendremos que ver un mensaje abajo diciendo "Mensaje enviado con Existo"
Para asegurarnos de que los datos fueron guardados nos dirigimos al Administrador de Bases de datos de WebMatrix. y revisamos la tabla y ver los datos guardados.
Conclusiones
Como pudimos ver los datos se enviar mediante un "Form" con método "Post" cuando el usuario preciosa el botón, se activa la propiedad "IsPost" ya que esta reaccionando al Post del formulario, de esa manera se ejecuta lo que esta dentro del "If", donde esta la consulta "INSERT". Esta es la primera parte de Acceso a datos con Razor y WebMatrix, en la segunda parte continuaremos este ejemplo y veremos como validar los datos y como hacer consultas para mostrar todos los mensajes que se encuentren guardados en la BD
Copiando el ejemplo tal cual, no funciona, cambie la linea de:
ResponderEliminarinput type="button" value="Enviar" />
por
input type="submit" value="Enviar" para que funcionara />