Foros del Web » Programación para mayores de 30 ;) » .NET »

error

Estas en el tema de error en el foro de .NET en Foros del Web. Hola tengo un error en modo edicion cuando pulso actualizar ERROR: no se pudo actualizar el registro, compruebe que los campos estn rellenos correctamenteEl nombre ...
  #1 (permalink)  
Antiguo 16/03/2005, 13:35
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 5 meses
Puntos: 1
error

Hola tengo un error en modo edicion cuando pulso actualizar
ERROR: no se pudo actualizar el registro, compruebe que los campos estn rellenos correctamenteEl nombre de columna 'Estado' no es válido.


Pero no veo ni entiendo porque dice que no es valido

Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)

If (Page.IsValid)
Dim DS As DataSet
Dim MyCommand As SqlCommand

Dim UpdateCmd As String = "UPDATE Ciudad SET Nombre_Ciudad = @Nombre_Ciudad, Estado = @Estado Where CiudadID= @CiudadID"

MyCommand = New SqlCommand(UpdateCmd, MyConnection)

MyCommand.Parameters.Add(New SqlParameter("@CiudadID", SqlDbType.NVarChar, 11))
MyCommand.Parameters.Add(New SqlParameter("@Nombre_Ciudad", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@Estado", SqlDbType.NVarChar, 40))

MyCommand.Parameters("@CiudadID").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))

Dim StateDropDownList As DropDownList
StateDropDownList = E.Item.FindControl("DropDownList3")
MyCommand.Parameters("@Nombre_Ciudad").Value = StateDropDownList.SelectedItem.ToString()

Dim CityDropDownList As DropDownList
CityDropDownList = E.Item.FindControl("DropDownList2")
MyCommand.Parameters("@Estado").Value = CityDropDownList.SelectedItem.ToString()

MyCommand.Connection.Open()

Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>Registro actualizado</b><br>" & UpdateCmd
MyDataGrid.EditItemIndex = -1
Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: ya existe un registro con la misma clave principal"
Else
Message.InnerHtml = "ERROR: no se pudo actualizar el registro, compruebe que los campos están rellenos correctamente" &Exp.Message
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()

BindGrid()
Else
Message.InnerHtml = "ERROR: compruebe las condiciones de error de cada campo."
Message.Style("color") = "red"
End If
End Sub

Sub BindGrid()

Dim DS As DataSet
Dim MyCommand As SqlDataAdapter
Dim strSql As String = "Select Ciudad.CiudadID as CiudadID, Ciudad.Nombre_Ciudad as Nombre_Ciudad, Estado.Nombre_Estado as Estado from Ciudad, Estado where Ciudad.EstadoID = Estado.EstadoID"

MyCommand = new SqlDataAdapter(strSql, MyConnection)


DS = new DataSet()
MyCommand.Fill(DS, "Ciudad")

MyDataGrid.DataSource=DS.Tables("Ciudad").DefaultV iew
MyDataGrid.DataBind()
End Sub


en el grid lo coloco asi

<asp:TemplateColumn SortExpression="Estado" HeaderText="Estado">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Estado") %>' ID="Label2" NAME="Label6"/>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList autopostback ="True" runat="server" id="Dropdownlist2" DataSource='<%# Estado () %>' DataValueField="EstadoID" DataTextField="Nombre_Estado">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>

Gracias por la ayuda de antemano
  #2 (permalink)  
Antiguo 16/03/2005, 14:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Ese error es porque no existe el campo estado en tu update.

Dim UpdateCmd As String = "UPDATE Ciudad SET Nombre_Ciudad = @Nombre_Ciudad, Estado = @Estado Where CiudadID= @CiudadID"


Por lo que veo en tu estructura el campo Estado pertence a la tabla Estado no..?? que mas bien sería Estado.Nombre_Estado, pero estas haciendo un update sobre una tabla.. y debería ser en las dos o no.??
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 16/03/2005, 15:25
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 5 meses
Puntos: 1
Lo que pasa es esto EstadoID es campo tanto de la tabla Ciudad como de la tabla Estado pero yo en grid quiero mostrar y actualizar el campo Nombre_Estado como Estado.

Me entiendes Ahora?
  #4 (permalink)  
Antiguo 17/03/2005, 12:17
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 5 meses
Puntos: 1
oye root lo estuve pensando mejor. Sucede que mi tabla Ciudad tiene los campos CiudadID, EstadoID, y nombre_ciudad. Pero yo para hacer la consulta me parecio como mas informativo, nomstrar los nombres de los estados en lugar de los ID

Para la consuta es chevere, incluso cuando inserto los campos lo que hago es que selecciono de un drop

Pero bueno lo cierto es a la hora de actualizar los campos estan siendo ocupados por el drop de estado y el drop ciudad. Se supone que cuando seleccione del drop ciudad que esta dentro del datagrid esta info se almacena en el campo nombre_ciudad de la tabla ciudad, y cuando se selccione el drop estado que esta dentro del datagrid dberia actualizar en el nombre en el combo y en la base de datos su equivalente en ID

Yo quize hacerlo asi, pero me da otro error

If (Page.IsValid)
Dim DS As DataSet
Dim MyCommand As SqlCommand

Dim UpdateCmd As String = "UPDATE Ciudad SET Nombre_Ciudad = @Nombre_Ciudad, EstadoID = @EstadoID Where CiudadID= @CiudadID"

MyCommand = New SqlCommand(UpdateCmd, MyConnection)

MyCommand.Parameters.Add(New SqlParameter("@CiudadID", SqlDbType.NVarChar, 11))
MyCommand.Parameters.Add(New SqlParameter("@Nombre_Ciudad", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@EstadoID", SqlDbType.NVarChar, 11))
(Lo demas lo deje igual(Me refiero al codijo))

El error que me da es este

ERROR: no se pudo actualizar el registro, compruebe que los campos estn rellenos correctamenteError de sintaxis al convertir el valor nvarchar 'Estado Anzo' para una columna de tipo de datos int.

espero puedas ayudarme y muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:07.