Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 28-mar-2003, 17:19   #1 (permalink)
MsTech.DotNet está en el buen camino
 
Avatar de MsTech.DotNet
 
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Problema para Actualizar Registros de la Base de Datos....

Tengo el siguiente codigo...

<%@ 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???...

Gracias...

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: javierugalde@gmail.com
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80

Última edición por MsTech.DotNet; 28-mar-2003 a las 17:50.
MsTech.DotNet está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 22:20.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93