Principales respuestas
No puedo actualizar ni eliminar porque me sale este error : "El método especificado no es compatible." en asp

Pregunta
-
Hola tengo un problema, cuando quiero eliminar desde el grid me tira ese error...y no me deja eliminar e igual pasa cuando quiero hacer un update! Necesito que me ayuden porfavor!!
Se los pido porfavor! y un ejemplo de como hacer si?
programo en asp .net vb 2010 con devexpress 2010...ayuda!
miércoles, 19 de junio de 2013 22:07
Respuestas
-
ok entonces el usoa de @ no aplciaria para los parametros
AS400 SQL query with Parameter
pro igual no queire decir que no se puedea aplicar
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Sergio ParraModerator jueves, 20 de junio de 2013 21:42
- Marcado como respuesta jasserita viernes, 21 de junio de 2013 20:23
jueves, 20 de junio de 2013 21:41
Todas las respuestas
-
Puedes mostrarnos como realizas esa operación? Gracias
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
miércoles, 19 de junio de 2013 23:33Moderador -
Este es mi código
Protected Sub dgvActi_Detalle_RowUpdating(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataUpdatingEventArgs) Handles dgvActi_Detalle.RowUpdating Try 'CABECERA' Dim query2 As String = "Update CJM_TEST.TACTIC SET NACTI_ID = '9', CACTI_CODE = 'CODE', CACTI_NAME = 'NAME', DACTI_FECHA = '20-06-2013', NACTI_TOTAL_CABECERA = '70' where NACTI_ID = '9'" Dim command2 As New OleDbCommand(query2, conexion) If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() command2.ExecuteNonQuery() conexion.Close() e.Cancel = True 'DETALLE' Dim query As String = String.Format("Update {0}.TACTID set NACTI_ID = {1}, CACTI_NAME = {2}, NACTI_CANT = {3}, CACTI_CODE = {4}, CACTI_ESTADO = {5}, CACTI_RETORNABLE = {6}, CACTI_OBSERVACION = {7}, NBODE_ID = {8}, NACTI_TOTAL_DETALLE = {9} Where NACTI_ID = {1}", tabla_nombre, Val(txtActi_ID.Text), Convert.ToString(txtActi_Presentacion.Text), Convert.ToInt32(txtActi_Cant.Text), Convert.ToString(txtActi_Code_Detalle.Text), Convert.ToString(cmbActi_Estado.Text), Convert.ToString(cmbActi_Return.Text), Convert.ToString(txtActi_Obse.Text), Convert.ToString(cmbActi_Bodega.Text), Convert.ToInt32(txtActi_Total_Detalle.Text)) Dim command As New OleDbCommand(query, conexion) If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() command.ExecuteNonQuery() conexion.Close() Catch ex As Exception MsgBox("No se pudo insertar la cabecera", MsgBoxStyle.Information) End Try e.Cancel = True End Sub
Y este es otro error que me sale!
jueves, 20 de junio de 2013 19:58 -
hola
el problema que tienes es que no usas parametros, eso de armar la query en un string es incorrecto
lo que no entiedno tampoco es porque defines la tabla de forma dinamica, esto tabla_nombre para que sirve? se supone que la tabla de detalle deberia ser una sola
If conexion.State = ConnectionState.Close Then conexion.Open() End If Dim query As String = "Update Detalles set CACTI_NAME = @name, NACTI_CANT = @cant, .. Where NACTI_ID = {1}" Dim command As New OleDbCommand(query, conexion) command.Parameters.AddWithValue("@name", txtActi_Presentacion.Text) command.Parameters.AddWithValue("@cant", Convert.ToInt32(txtActi_Cant.Text)) . . command.Parameters.AddWithValue("@id", Val(txtActi_ID.Text)) command.ExecuteNonQuery() conexion.Close()
alli solo puse algunos porque son muchos, pero la idea es definir la coleccion Parameters del command
implementalo de esta forma y seguro funciona, recuerda respectar los tipos de datos, si un campo es del tipo fecha convierte el valor a datetime cuando lo asignes al parametro
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinajueves, 20 de junio de 2013 21:09 -
Ok, gracias por contestar Leandro,
resulta que coloco "tabla_nombre" ya que trabajo con iSeries AS400 y Visual Studio 2010 plataforma asp.net, no se si ya ha trabajado con AS400, pues la estructura de las tablas es diferente, y tengo que acceder a ellas de esta manera: "BD.NombreTabla" en este caso,"tablaNombre" viene siendo la BD y TACTID el nombre de la tabla. En su ejemplo sería Detalles.
Intenté de esa manera que me describes, pero no es la misma sintaxis. Trabajo con un Oledbc para conectarme al iSeries AS400, y la única manera de poder hacer consultas, al menos la que yo pude, fue colocando las sentecias de tipo string.
Otra pregunta Leandro, eso del tipo de fecha lo coloco asi : Format(CDate(dtActi_Date.Text), "yyyy-MM-dd")
me darias un ejemplo de convertir la fecha a datetime porfavor?
habia pensado asi: dtFecha.text= datetime.today
jueves, 20 de junio de 2013 21:39 -
ok entonces el usoa de @ no aplciaria para los parametros
AS400 SQL query with Parameter
pro igual no queire decir que no se puedea aplicar
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Sergio ParraModerator jueves, 20 de junio de 2013 21:42
- Marcado como respuesta jasserita viernes, 21 de junio de 2013 20:23
jueves, 20 de junio de 2013 21:41