• Viernes 8 de Noviembre de 2024, 08:31

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - elendil73

Páginas: [1]
1
VB .NET / VB.NET Seleccionar registros de DataGrid
« en: Lunes 1 de Diciembre de 2008, 21:05 »
Estoy haciendo un portal web en ASP.NET usando el VS2005. Uno de los requerimientos es que los usuarios puedan realizar compras de un catalogo a través de la web. El catalogo de productos esta en Excel y realizo la carga de las tablas en un DataGrid, de esta manera :

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '
        Dim sConnectionString As String = “cadenaconexion”
        ' Crear el objeto de conexión con la cadena de conexión
        Dim objConn As New OleDbConnection(sConnectionString)
        ' Abrir la conexión con la base de datos.
        objConn.Open()
        ' Crear un OleDbCommand para devolver los datos de la hoja.
        Dim objCmdSelect As New OleDbCommand("SELECT * FROM  intervalo", objConn)
        ' Crear un nuevo OleDbDataAdapter que se use para crear un DataSet basado en la instrucción SELECT de SQL anterior.
        Dim objAdapter1 As New OleDbDataAdapter()
        ' Pasar el comando Select al adaptador.
        objAdapter1.SelectCommand = objCmdSelect
        ' Crear un DataSet para contener la información de la hoja de
        Dim objDataset1 As New DataSet()
        ' Rellenar el DataSet con la información de la hoja de cálculo
        objAdapter1.Fill(objDataset1, "XLData")
        ' Crear una tabla a partir de los datos originales.
        dt_Coches_SLOT.DataSource = objDataset1.Tables(0).DefaultView
        ...
        dt_Coches_SLOT.DataBind()
        ' Limpiar los objetos.
        objConn.Close()
 End Sub

Mi duda, es que no sé como hacer para que el usuario pueda seleccionar registros, para pasar después a una página de pedido (tipo carrito de compra), pero además necesito que el campo IMAGEN (que son links hacia imágenes en pop-up) puedan ser ejecutados haciendo clic sobre el DataGrid. Parece ser que el DataGrid, es como si fuera de modo lectura. Necesito seleccionar filas y hacer que funcionen los eventos clic en datos de hipervínculo.

Espero que alguien me pueda ayudar. Muchas Gracias.

Saludos.   :comp:

2
VB .NET / Como Elimino un registro de BBDD a través de un ListView ?
« en: Domingo 2 de Noviembre de 2008, 14:04 »
Siguiendo como ejemplo el link :

ADONET/ejemploSQL.htm

en la web de el guille,

Me he dado cuenta de que el procedimiento para eliminar registro no me elimina el registro de la base de datos. En cambio el procedimiento de actualizar base de datos, si me graba cuando doy de alta un registro nuevo.


Private Sub btnActualizarBase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizarBase.Click
        ' Actualizar la base de datos con los cambios realizados
        Dim fila As Data.DataRow
        Dim i, j As Integer
        Dim lwItem As ListViewItem
        Dim columna As Data.DataColumn
        '
        lblInfo.Tag = lblInfo.Text
        lblInfo.Text = "Actualizando los datos..."
        lblInfo.Refresh()
        'Dim commandBuilder As New Data.OleDb.OleDbCommandBuilder(dbDataAdapter) 'comentado
        Try
            For i = 0 To ListViewDatos.Items.Count - 1
                'dbDataSet.Tables(NombreTabla).Rows.Count(-1) 'comentado
                'fila = dbDataSet.Tables(NombreTabla).Rows(i) 'comentado
                lwItem = ListViewDatos.Items(i)
                fila = CType(ListViewDatos.Items(i).Tag, Data.DataRow)
                fila.BeginEdit()
                j = 0
                For Each columna In dbDataSet.Tables(NombreTabla).Columns
                    If j = 0 Then
                        If columna.AutoIncrement = False Then
                            fila(j) = lwItem.Text
                        End If
                    Else
                        If columna.AutoIncrement = False Then
                            fila(columna.ColumnName) = lwItem.SubItems(j).Text
                        End If
                    End If
                    j += 1
                Next
                fila.EndEdit()
                'fila.AcceptChanges() 'comentado
            Next
            '
            dbDataAdapter.Update(dbDataSet, NombreTabla)
            dbDataSet.AcceptChanges()
            '
            lblInfo.Text = CStr(lblInfo.Tag)
            lblInfo.Text = "Se ha insertado correctamente el registro"
        Catch errActualizar As Exception
            lblInfo.Text = errActualizar.Message
            MsgBox(errActualizar.Message)
        End Try

    End Sub
Parece ser que el registro se elimina del dataSet, pero no de la base de datos Alguien me puede indicar que es lo que esta pasando ?, que me falta ?
Lo que esta comentado es código que he añadido para probar que es lo que me muestra el DELETE, pero lo que pasa es que lo borra de “Tabla1” o sea la tabla virtual del DataAdapter


Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
        ' Eliminar la fila indicada
        Dim fila As Data.DataRow
        'Dim deleteCommand As OleDb.OleDbCommand = New OleDb.OleDbCommand
        '
        If MsgBox("Se va ha borrar el registro seleccionado. ¿Estas seguro de eliminarlo?", MsgBoxStyle.YesNo, "Borrar Registro") = MsgBoxResult.Yes Then
            '
            fila = CType(ListViewDatos.SelectedItems(0).Tag, Data.DataRow)
            dbDataSet.Tables(NombreTabla).Rows.Remove(fila)
            ListViewDatos.Items.Remove(ListViewDatos.SelectedItems(0))
            'dbDataAdapter.DeleteCommand = deleteCommand
            'deleteCommand.CommandText = "DELETE FROM " & frmGestionTablas.cboTablas.Text & " WHERE ARTICULO = " & dbDataSet.Tables(NombreTabla).Columns(0).ColumnName & ""
            dbDataAdapter.Update(dbDataSet, NombreTabla)
            dbDataSet.AcceptChanges()
            '
            lblInfo.Text = "Se ha eliminado un registro de la Tabla"
            '
        Else
            If MsgBox("Se va ha borrar el registro seleccionado. ¿Estas seguro de eliminarlo?", MsgBoxStyle.YesNo, "Borrar Registro") = MsgBoxResult.No Then
                Me.Focus()
            End If
        End If

End Sub

Páginas: [1]