ASP.NET – ListView – Comando Insert
Publicado por Pedro en Enero 4, 2009
Para insertar un registro en la base de datos desde un ListView tenemos que tener al menos lo siguiente:
En la página ASPX:
<asp:ListView Id=”lsvJuegos” runat=”server” DataKeyNames=”IdJuego” DataSourceID=”sqlJuegos” OnItemCommand=”ListadoDeComandos”>
<LayoutTemplate>
<asp:PlaceHolder ID=”itemPlaceHolder” runat=”server”></asp:PlaceHolder>
<asp:LinkButton ID=”lnkNuevo” runat=”server” Text=”Pulse aqu¡ para añadir un registro” OnClick=”Nuevo”></asp:LinkButton>
</LayoutTemplate>
<ItemTemplate>
<p><%#Eval(“NombreJuego”)%> </p>
</ItemTemplate>
<InsertItemTemplate>
<p>
<asp:TextBox ID=”txtNombreInsertando” runat=”server”></asp:TextBox>
<asp:LinkButton ID=”lnkGuardaInsertando” runat=”server” CommandName=”GuardarInsertando” Text=”Guardar”></asp:LinkButton>
<asp:LinkButton ID=”lnkCancelarInsertando” runat=”server” CommandName=”CancelInsertando” Text=”Cancelar”></asp:LinkButton>
</p>
</InsertItemTemplate>
</asp:ListView>
<asp:Label ID=”lblMensaje” runat=”server”></asp:Label>
<asp:SqlDataSource ID=”sqlJuegos” runat=”server”></asp:SqlDataSource>
En la página de código:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
‘Enlazar SQL
sqlJuegos.ConnectionString = “Data Source=.\SQLEXPRESS;AttachDbFilename=’C:\datos\Visual Studio 2008\WebSites\Prueba1\App_Data\Juegos_NDS.mdf’;Integrated Security=True;User Instance=True”
sqlJuegos.SelectCommand = “SELECT * FROM [Juegos]“
End Sub
Sub ListadoDeComandos(ByVal sender As Object, ByVal e As ListViewCommandEventArgs)
Select Case e.CommandName
Case “GuardarInsertando”
Dim NuevoValor As String = CType(e.Item.FindControl(“txtNombreInsertando”), Object ).Text
Dim CadenaSQL As String
CadenaSQL = “INSERT INTO Juegos (NombreJuego) VALUES (‘” & NuevoValor & “‘)”
sqlJuegos.InsertCommand = CadenaSQL
sqlJuegos.Insert()
sqlJuegos.DataBind()
lsvJuegos.InsertItemPosition = InsertItemPosition.None
lsvJuegos.FindControl(“lnkNuevo”).Visible = True
Case “CancelInsertando”
lsvJuegos.InsertItemPosition = InsertItemPosition.None
lsvJuegos.FindControl(“lnkNuevo”).Visible = True
End Select
End Sub
Sub Nuevo()
lsvJuegos.InsertItemPosition = InsertItemPosition.LastItem
lsvJuegos.FindControl(“lnkNuevo”).Visible = False
End Sub
lsvJuegos.InsertItemPosition = InsertItemPosition.None
lsvJuegos.FindControl(“lnkNuevo”).Visible = True
HighTestosterone escribió
Ojala hubiera tenido esta información hace un par de años atrás cuando estaba en la Universidad, gracias de todos modos a veces tenemos que regresar a buscar esta información.