<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<script language="VB" runat="server">
Dim MyConnection As SqlConnection
Sub Page_Load(Sender As Object, E As EventArgs)
MyConnection = New SqlConnection("server=(local);database=bdcet;Trust ed_Connection=yes")
If Not (IsPostBack)
BindGrid()
End If
End Sub
Sub MyDataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)
Dim MyCommand As SqlCommand
Dim DeleteCmd As String = "DELETE from areas where idarea = @id"
MyCommand = New SqlCommand(DeleteCmd, MyConnection)
MyCommand.Parameters.Add(New SqlParameter("@id", SqlDbType.NVarChar, 4))
MyCommand.Parameters("@id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>Registro Eliminado con Exito!</b><br>" & DeleteCmd
Catch Exc As SQLException
Message.InnerHtml = "<b>ERROR: no se pudo eliminar el registro</b>"
Message.Style("color") = "red"
End Try
MyCommand.Connection.Close()
BindGrid()
End Sub
Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
BindGrid()
End Sub
Sub MyDataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)
Dim MyCommand As SqlCommand
Dim UpdateCmd As String = "UPDATE areas SET area=@area where idarea=@id"
MyCommand = New SqlCommand(UpdateCmd, MyConnection)
MyCommand.Parameters.Add(New SqlParameter("@id", SqlDbType.NVarChar, 4))
MyCommand.Parameters.Add(New SqlParameter("@area", SqlDbType.NVarChar, 30))
MyCommand.Parameters("@id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
MyCommand.Connection.Open()
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>Registro actualizado</b><br>" & UpdateCmd.ToString()
MyDataGrid.EditItemIndex = -1
MyCommand.Connection.Close()
BindGrid()
End Sub
Sub BindGrid()
Dim DS As DataSet
Dim MyCommand As SqlDataAdapter
MyCommand = New SqlDataAdapter("select * from areas", MyConnection)
DS = new DataSet()
MyCommand.Fill(DS, "areas")
MyDataGrid.DataSource=DS.Tables("areas").DefaultVi ew
MyDataGrid.DataBind()
End Sub
</script>
<body style="font: 10pt verdana">
<form runat="server">
<h3><font face="Verdana">Mantenimiento Tabla Areas</font></h3>
<span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/>
<p>
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="400"
BackColor="#CCCCCC"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#c0c0c0"
DataKeyField="idarea"
OnDeleteCommand="MyDataGrid_Delete"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
AutoGenerateColumns="false"
>
<Columns>
<asp:EditCommandColumn EditText="Editar" CancelText="Cancelar" UpdateText="Actualizar" ItemStyle-Wrap="false"/>
<asp:ButtonColumn Text="Eliminar" CommandName="Delete"/>
<asp:BoundColumn HeaderText="Id Area" SortExpression="id" ReadOnly="True" DataField="idarea" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="Area" SortExpression="area" DataField="area"/>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>
El error que me da al querer actualizar un registro es el siguiente...
La instrucción preparada '(@id nvarchar(4),@area nvarchar(30))UPDATE areas SET area=@area ' espera el parámetro @id, que no se ha especificado.
Que puede ser???...
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
Gracias...
![de acuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosarriba.png)
Saludos...
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)