ASP.NET - consulta boton eliminar

   
Vista:

consulta boton eliminar

Publicado por mamicho (4 intervenciones) el 01/12/2007 18:17:20
hola, tengo un boton afuera del gridview que al seleccionar una fila posteriormente la elimina.

codigo:

cmd = New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spEliminaDetalleSolicitud"
cmd.Connection = cn
Dim da As New SqlDataAdapter
da.DeleteCommand = cmd
Dim dsol_id As New SqlParameter("@dsol_id", SqlDbType.Int)
Dim dsol_talla As New SqlParameter("@dsol_talla", SqlDbType.VarChar, 50)
Dim dsol_color As New SqlParameter("@dsol_color", SqlDbType.VarChar, 50)
Dim dsol_cantidad As New SqlParameter("@dsol_cantidad", SqlDbType.Int)
Dim dsol_estado As New SqlParameter("@dsol_estado", SqlDbType.VarChar,50)

da.DeleteCommand.Parameters.Add(dsol_id)
da.DeleteCommand.Parameters(0).Value = TextBox1.Text
da.DeleteCommand.Parameters.Add(dsol_talla)
da.DeleteCommand.Parameters(1).Value = txtTalla.Text
da.DeleteCommand.Parameters.Add(dsol_color)
da.DeleteCommand.Parameters(2).Value = txtColor.Text
da.DeleteCommand.Parameters.Add(dsol_cantidad)
da.DeleteCommand.Parameters(3).Value = txtCantidad.Text
da.DeleteCommand.Parameters.Add(dsol_estado)
da.DeleteCommand.Parameters(4).Value = txtEstado.Text

Try
Using cn
cn.Open()
da.DeleteCommand.ExecuteNonQuery()

da.Dispose()
cmd.Dispose()
End Using

Catch ex As Exception
End Try

ahora mi consulta es puedo mover ese codigo al boton eliminar del gridview?
ya que lo copie en GridView1_RowDeleted,GridView1_RowDeleting,SqlData Source1_Deleted,SqlDataSource1_Deleting y me borra la fila pero me dice este mensaje despues "La acción de eliminar no es compatible con el origen de datos 'SqlDataSource4' a menos que se especifique DeleteCommand. "
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta boton eliminar

Publicado por Gabriel (2 intervenciones) el 02/12/2007 13:16:59
Hola Mauricio:

Sin duda puedes organizar tu códio de diferentes formas. El mensaje que te da el .net tiene mas que ver con la forma que has elegido de enlazar tus datos con los controles que la organización del código. Intenta a enlazar el comando con la conexión una vez creado por completo el comando. Es decir,

// creacion del comando

cmd.Connection = cn
cn.Open()

// ejecucion del comando

Aún asi creo que lo mas probable es que debas referenciar el comando DELETE en tiempo de diseño.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta boton eliminar

Publicado por Khristian (335 intervenciones) el 04/12/2007 01:31:51
Por que usar un boton con tanto codigo????

Solo basta que escribas la sentencia SQL de eliminacion en tu origen de datos, y al GridView le permites ELIMINAR....

Ahora, si el GridView muestra una consulta o datos relacionados, donde no puedas eliminar la fila, si tendras que cargar el indice que identifique el registro que quieres eliminar de la tabla especifica.

por ejemplo

El GridView muestra

----------------------------
CLIENTE | PAIS
----------------------------

Obviamente no podrias eliminar la fila, pues es una consulta relacionada, pero para ello solo debes agregar a la consulta el ID de cliente

-----------------------------------------
ID_Cli | CLIENTE | PAIS
-----------------------------------------

Obviamente, ocultas esa columna o no la muestras.
Lo importante es q
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta boton eliminar

Publicado por Khristian (335 intervenciones) el 04/12/2007 01:34:37
Por que usar un boton con tanto codigo????

Solo basta que escribas la sentencia SQL de eliminacion en tu origen de datos, y al GridView le permites ELIMINAR....

Ahora, si el GridView muestra una consulta o datos relacionados, donde no puedas eliminar la fila, si tendras que cargar el indice que identifique el registro que quieres eliminar de la tabla especifica.

por ejemplo

El GridView muestra

----------------------------
CLIENTE | PAIS
----------------------------

Obviamente no podrias eliminar la fila, pues es una consulta relacionada, pero para ello solo debes agregar a la consulta el ID de cliente

-----------------------------------------
ID_Cli | CLIENTE | PAIS
-----------------------------------------

Obviamente, ocultas esa columna o no la muestras.
Lo importante es que sea la primera, o que sea la primera en la coleccion DataKey

Asi tu senetencia de eliminacion seria

DELETE FROM Cliente WHERE ID_Cli = @ID_Cli

Y listo.... solo falta permitir ELIMINAR, y listo

----------------------------------------------
CLIENTE | PAIS | Eliminar
----------------------------------------------

Muchos creen que las sentencias del origen de datos debe estar "directamente" relacionanda con lo que se obtiene y muestra en el GridView, pero no....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar