martes, enero 29, 2008

Eventos Insert, Delete, Update y Select en GridView

La mayoria de parrillas en el mundo web, tienen asociadas diferentes tareas sobre el conjunto que lo componen como son la Inserción, Borrado, Actualizacion y Borrados.

Para llevar esto a una GridView, es recomendable utilizar los eventos que este control nos ofrecen como son.

GridView_RowDeleting, GridView_RowEditing, GridView_RowCreated y GridView_SelectIndexChanging.

Para poder en ellos detectar el identificador de la fila, hemos de utilizar la propiedad DataKeyNames, que identifica la primary key de esta, y estará por tanto disponible en las funciones anteriores.

Código ASP:

<asp:GridView DataKeyNames="IdPrueba" ID="GridView1" AutoGenerateColumns="false"
runat="server">
<Columns>
<asp:BoundField HeaderText="Id" DataField="IdPrueba" />
<asp:BoundField HeaderText="Nom" DataField="Nombre" />
<asp:BoundField HeaderText="Esport" DataField="IdDeporte" />
<asp:BoundField HeaderText="Sexe" DataField="IdSexo" />
<asp:BoundField HeaderText="Categoria Inici" />
<asp:BoundField HeaderText="Categoria Final" />
<asp:BoundField HeaderText="Grup Mínim" DataField="GrupoMinimo" />
<asp:BoundField HeaderText="Màxim" DataField="GrupoMaximo" />

<asp:CommandField ButtonType="image" ShowEditButton="true" EditImageUrl="~/Styles/Images/Icons/pencil.png" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="delButton" runat="server" ImageUrl="~/Styles/Images/Icons/delete.png" OnClientClick="return confirm('Esta seguro que quiere volar el registro?');" CommandName="Delete"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>



Código VB:

Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
BR.Prueba.Delete(sender.DataKeys(e.RowIndex).Value())
CargarGrid()
End Sub


Para mostrar un comando estilo confirm de java en el gridview cuando realizamos una acción, es tan fácil como utilizar la función OnClientClick tal y como vemos en el ejemplo anterior.

lunes, enero 21, 2008

Session Asp.Net en Sql Server 2005

En Asp.Net tenemos varios modos de guardar las sessiones, entre ellos:

Off Indica que el estado de la sesión no está habilitado.
InProc Indica que el estado de la sesión se almacena localmente.
StateServer Indica que el estado de la sesión se almacena en un servidor remoto.
SQLServer Indica que el estado de la sesión se almacena en el servidor SQL Server.

Todos estos se indican en el atributo mode del parametro de configuracion sessionState.

Para poder configurarlo en SQLServer, se ha de habilitar dicha opción en el propio SQL Server ejecutando la siguiente consulta mediante el editor de consultas o management studio segun pertoque:

C:\Windows\Microsoft.NET\Framework\<version>\InstallSQLState.sql

Sin más, sólo nos faltara configurar el web.config añadiendo la siguiente cadena:

<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=user;password=password"
cookieless="false"
timeout="20"
/>

miércoles, enero 09, 2008

Cambiar Schema en un objecto de Sql Server 2005

Somos muchos los que a diario hemos de trabajar conjuntamente con Sql Server 2000 y 2005, haciendo migración de objetos (tablas, vistas, procedures, ...) de una a otra y viceversa. Al realizar una exportación de objetos de 2000 a 2005, nos encontramos que el SCHEMA propietario de los objetos exportados es el creado para el usuario de Sql Server 2000.

Solución:


ALTER SCHEMA <nombre> TRANSFER <objeto>