lunes, 30 de junio de 2008
Introduccion
Y nada... tambien hay videos tutoriales de CSS. Suerte!!!
domingo, 29 de junio de 2008
Mensajes al usuario utilizando AJAX
Logre un ejercicio interesante, especialmente para los que arrancan con esta historia de comunicaciones asincrónicas con el servidor.
Definitivamente con ASP.NET es mucho pero mucho más sencillo, solo hay que leer que y como lo hacen los diferentes controles.
Toda la explicación, incluso el código fuente del proyecto lo encuentran aquí.
sábado, 28 de junio de 2008
Tratamiento de Cadenas en C#
Por ejemplo: para escribir "C:\" en una cadena deberemos escribir "C:\\".
Pero, qué pasa si queremos escribir una cadena como la cadena de conexión del ejemplo de Conexión a la base de Datos de Diego?
Puede resultar muy engorroso tener que escribir "\\" por cada subdirectorio. Lo que además resulta complicado de leer. (Ni hablar si se está escribiendo una expresión regular!!!)
Para esto existe una solución!!!
Se debe anteponer a la cadena el símbolo "@", para que la cadena sea tomada tal como está (internamente el compilador tendrá que poner todos los caracteres de escape que necesite).
Ejemplo:
La cadena de conexion original tenía lo siguiente:
string strConexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\sql\\MSSQL.1\\MSSQL\\Data\\Celula.mdf;Inte...";
Para que quede más legible la podemos reescribir de la siguiente manera:
string strConexion = @"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\sql\MSSQL.1\MSSQL\Data\Celula.mdf;Inte...";
Conexión a una BD - Segunda Parte
El código original es el siguiente:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Collections;
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
string strConexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\sql
\\MSSQL.1\\MSSQL\\Data\\Celula.mdf;Integrated Security=True;Connect
Timeout=30;User Instance=True";
protected void Page_Load(object sender, EventArgs e)
{
Listar();
}
//con este metodo relleno el gridview1
protected void Listar()
{
SqlConnection conexion = new SqlConnection(strConexion);
SqlDataAdapter adapter = new SqlDataAdapter("Select * from
Integrantes", conexion);
DataSet ds = new DataSet();
try
{
conexion.Open();
adapter.Fill(ds, "Integrantes");
this.GridView1.DataSource = ds.Tables["Integrantes"].DefaultView;
this.GridView1.DataBind();
conexion.Close();
}
catch (SqlException ex)
{
Response.Write("se ha producido una excepción: " + ex);
}
}
}
Para mejorar el código comenzamos por lo siguiente: reemplazar en la cadena de conexión la dirección física del archivo de base de datos por el nombre de la misma, mediante la propiedad Initial Catalog, dejando que el motor del SQL Server busque la ubicación física:
string strConexion = @"Data Source=.\SQLEXPRESS;Initial Catalog=Celula;
Integrated Security=True;Connect Timeout=30;User Instance=True";
Otra cosa, en este código se está referenciando muchos NameSpaces que no son necesarios. El comienzo del código debería quedar sólo con lo siguiente:
using System;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Data.SqlClient;
Ahora, como se puede ver en este post de Jujuy ASP NET, es conveniente utilizar bloques using, por lo que se debería cambiar el código de la función Listar para que quede como el siguiente:
protected void Listar()
{
using (SqlConnection conexion = new SqlConnection(strConexion))
{
using (SqlDataAdapter adapter = new SqlDataAdapter("Select * from
Integrantes", conexion))
{
using (DataSet ds = new DataSet())
{
try
{
conexion.Open();
adapter.Fill(ds, "Integrantes");
this.GridView1.DataSource = ds.Tables["Integrantes"].DefaultView;
this.GridView1.DataBind();
//conexion.Close();
}
catch (SqlException ex)
{
Response.Write("se ha producido una excepción: " + ex);
}
}
}
}
}
Como se puede ver, también se ha comentado la línea en donde se cierra la conexión. Esto se debe a que al utilizar un bloque using no hace falta cerrar explícitamente la conexión.
Eso es todo! Espero que haya servido.
Pausa
Conexion con una BD
Bien pues ahora diseñemos una tabla, la cual puede contener los datos de las imagen:
Recordemos añadir algun dato que otro a la tabla, esto podemos hacerlo al abrir la tabla que creamos...
Una vez hecho esto estamos en condiciones de utilizar el Visual Estudio 2008, alli crearemos una pagina Web, y en la misma, en la parte de diseño introduciremos un GridView
Una vez hecho esto se nos pedira el tipo de origen de datos, seleccionaremos SqlDataSource (podremos asignarle un nombre)
Bien una vez ubicada la BD de datos podremos probar la conexion y ver que todo esta bien (que bien que bien... ya todo esta bien) Observen el area marcada con azul, alli se puede apreciar los datos necesarios con los que se a confeccionado nuestra cadena de conexion, tratemos de guardar esta cadena que mas tarde nos servira de mucho...
Damos a ejecutar el proyecto y voila! Todo bien... podremos ver los datos de nuestra BD!!!
Ahora todo bien... pero nuestra tabla se conecta de manera directa con la BD de datos... es esto seguro? Pues no la verdad y es un poco desordenado tambien....
Mejor hagamos todo lo que hicimos pero programando mejor...
Esto por que? Bueno al programar podemos tener un mejor control de la informacion y podemos establecer un patron de trabajo mas que nada... Supongamos que tenemos que hacer muchas de estas tablas y establecer una relacion entre ellas, nos conviene que Pedro haga las tablas, que Miguel realice el enlace, Juancito la programacion y Amalia el diseño... Ahora estamos produciendo software y del bueno.... y estamos minimizando los tiempos.
Esto es mucho mejor que si cada uno de estos individuo hiciese todos los pasos que hicimos nosotros.. pero bueh... basta de chachara ahi vamos...
Copiemos este codigo en el codebehind de nuestra pagina:
ALERTA: antes que nada a nuestro GridView le quitaremos la relacion con su SqlDataSource y le asignaremos ninguno.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Collections;
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
string strConexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\sql\\MSSQL.1\\MSSQL\\Data\\Celula.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
protected void Page_Load(object sender, EventArgs e)
{
Listar();
}
//con este metodo relleno el gridview1
protected void Listar()
{
SqlConnection conexion = new SqlConnection(strConexion);
SqlDataAdapter adapter = new SqlDataAdapter("Select * from Integrantes",conexion);
DataSet ds = new DataSet();
try
{
conexion.Open();
adapter.Fill(ds, "Integrantes");
this.GridView1.DataSource = ds.Tables["Integrantes"].DefaultView;
this.GridView1.DataBind();
conexion.Close();
}
catch (SqlException ex)
{
Response.Write("se ha producido una excepción: " + ex);
}
}
}
Bueno no soy muy bueno con los colores pero ahi se va...
Ah observen que hay un strConexion de tipo cadena y le estoy pasando nuestra cadena de conexion que habiamos guardado antes recuerdan? La unica diferencia es que se añadio una barra invertida de mas a esta cadena (sino daba error)
Y Bueno nada... si ejecutamos veremos que obtendremos el mismo resultado, pero ahora tenemos el control de todo
Tambien podriamos haber llamado a un procedimiento almacenado que nos trajera la lista de registros. Pero bueno si alguien quiere meterse en esos llanos, bienvenido sea... SALUDOS Y ESPERO QUE SIRVA ESTO!!!
jueves, 26 de junio de 2008
Temas - A darle atomos!!!
Existen muchas formas de hacerlo y me gustaria que mandaran algunas ideas, cualquier cosa yo voy a postear (asi se dice?) algunas ideas, espero que haya preguntas y que se diga cual es el siguiente tema a estudiar... Bueno nos veremos pronto, saludos!!!
Vean que al inicio aparece las formas en que se puede establecer conexion con el proyecto... por ahora nos quedemos con la primera opcion... asi que hacemos click en Cod... proyect como aparece en la imagen.
Acto seguido nos descargamos el archivo zipi.... (si se dice ZIP pero bueh...)