Mantenimiento a registros desde datagrid

¿Qué tal espero estés muy bien sabes necesito que me ayudes en lo siguiente
tengo un datagrid el cual llena los registros de una tabla en sql estoy programando en visual basic .net 2005 cuando carga los registros cada fila quisiera que al darle click sobre el botón que el mismo datagrid carga por el lado izquierdo quisiera que al darle doble click me abriera un nuevo form con los datos que contenga la fila y ya estos cargados cada registro de cada columna en un textbox... Si me podrías ayudar en esa parte para activar eso del datagrid y pues que automático al dar click en cada fila me mande al nuevo form?
El código que tengo es el siguiente
Imports System. Data
Imports System. Data. Common
Imports System. IO
Imports System. IO. File
Imports System. IO. FileStream
Imports Excel = Microsoft.Office.Interop.Excel
Imports System. Data. SqlClient
Imports System.Xml. Serialization
Public Class mant_est010
Dim idConexion As String ' cadena de conexion
Dim Adapt As SqlDataAdapter
'tabla que se usara para almacenamiento
Dim Table As New DataTable
Dim view As String
Private Sub mant_est010_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
idConexion = "Data Source=BASCULASC\;Initial Catalog=sistema de campo;Integrated Security=True"
view = "select * from est010"
If (Not view.Trim.Equals("")) Then
Try
Adapt = New SqlDataAdapter(view, idConexion)
Adapt.Fill(Table)
Me.DataGridView1.DataSource = Table
Catch ex As Exception
End Try
End If
End Sub
end class

4 Respuestas

Respuesta
1
A ver, vamos por partes dijo Jack el Destripador.
En el evento CellDoubleClick de la Grilla vas a crear un objeto formulario (del formulario que se abre) y le asignarás a los TextBox los datos de la grilla.
Algo así:
Dim F as new FormularioAbrir
F.TextBox1.Text = DataGridView1("NOMBRECAMPOS", DataGridView1.CurrentRow.Index).Value.ToString()
Esa linea, la repetirás tanto como TextBox y campos tengas.
Controla en la primer linea del evento CellDoubleClick si el Index es mayor a -1 con algo así:
If e.RowIndex > -1 Then
Antes del End If pones lo que yo te puese más arriba.
Luego de terminar de llenar los TextBox, haces F.Show() para mostrar la ventana con los datos ya cargados.
Si tienes dudas me lo haces saber.
Perdón amigo no me quedo del muy claro es que me hice algo bolas... digamos que así como tengo el código tengo en la tabla est010 los siguientes registros
columna1 columna2 columna3 columna4 columna5
DATO1 ... ... ...
dato2
dato3
dato4
dato5
dato6
..
..
Si me podrías hacer un ejemplo utilizando eso toma en cuenta que no se cuantos campos habrá.. ya que el usuario ira insertándolos y pues yo no sabre un numero en especial y tu m dices que ponga todos los campos lo que si pues se ve ahí es el numero de columnas si me puedes realizar eso por favor con base a estos datos de arriba por favor
El ejemplo ya te lo dí, si no sabes cuantos campos, columnas hay, tendrás que contabilizarlos a la hora de que hagan Doble clic.
Para contar las columnas usa Columns. Count y Rows. Count
Luego cambia DataGridView1("NOMBRECAMPOS", DataGridView1.CurrentRow.Index).Value.ToString() por DataGridView1(0, DataGridView1.CurrentRow.Index).Value.ToString()
Donde 0 es la primera columna.
Ese 0 lo podrías cambiar por una variable que se mueva, algo así:
For i as Integer = 0 To DataGridView1.Columns.Count -1
DataGridView1(i, DataGridView1.CurrentRow.Index).Value.ToString()
Next
Deberías guardar o asignar ese dato a un TextBox o Variable.
Me quedo de lujo con ese detalle que me diste muchísimas gracias ahora si a seguir trabajando te agradezco que siempre me des detalles gracias experto :)
Respuesta
1
Hay un evento SelectedCommand de la grilla por aquí lo puedes hacer, con algo como por ejemplo:
if e.Commandname="Select" then
' Aqui el codigo
dim frm as new tuformulario
frm.showdialog()
end if
Respuesta
1
Lo que tendrías que hacer es lo siguiente
Private Sub enviardatos() Handles Button.Click
frm2.txtEjemplo.Text = DGV(0, DGV.CurrentRow.Index).Value
End Sub
Te explico un poco estas lineas.
Al presionar click sobre el botón se llamara al procedimiento "enviardatos".
En este cargamos el TextBox txtEjemplo con los datos de la fila actualmente seleccionada.
Para obtener el valor de una celda:
DataGridView(numero_de_columna, numero_de_fila).Value
Espero te sirva.
Respuesta
1
No entiendo tu pregunta.. me dices que al cargar la fila en cada una hay un botón el cual quieres que te abra un nuevo form.. mm .. pues es algo confuso.. aclarame la pregunta..
Ok amigo experto mira lo que pasa es que cuando mostramos la información en un datagridview nos aparecen filas y columnas. Pues al inicio de cada fila del lado izquierdo he sabido por que he visto programas así que cuando se les da doble click ahí en donde se posiciona la flechita que indica la fila se le puede activar para que cargue los datos a un nuevo form para que muestre los datos de esa fila en una lista de textbox aclaro todo esto en el nuevo form.. ¿si más o menos me explico amigo?
Listo ahora te entiendo mejor.. para esto selecciona el datagried y busca el evento rowheadermouseclic
Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseClick
e.RowIndex
form1.show()
End Sub
Dentro de el cargaremos la form que decías.. entonces creamos una form con los respectivos texbox.. y simplemente la llamaremos cuando se de click y listo obviamente debes hacer que cargue a los textbox los datos...
Tambn te dire komo saber el numero de fila.. simplemente para esop use el row index.. apartir de eso datos lo demas es mas sencillo..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas