MySQL Forums
Forum List  »  Spanish

Visual 2003 con mysql DataGrid UPDATE
Posted by: cesar vanterlo
Date: January 28, 2007 04:35AM

Hola listeros:

He leido que los comandos del commandbuilder del datagrid no son "eficientes" y que no se
aconseja que se pueda "editar" un datagrid en una aplicacion de escritorio.
Aún asi quisiera poder hacer un UPDATE cuando el administrador modifique algún dato del mismo.
Trabajo con visual basic.net y la base es MySql y no consigo que el programa haga las
modificaciones, me da el siguiente error:

Información adicional: Update requiere que UpdateCommand sea válido
cuando se pasa la colección DataRow con filas modificadas.

Pueden ayudarme?, gracias Cesar


Imports System.Data.OleDb ' cargo el oledb
Imports MySql.Data ' importa los datos MySql para el ADO.net
Imports MySql.Data.MySqlClient ' importa driver MySql para el ADO.net
----------------------------------------------------------
Public Class Form3
Inherits System.Windows.Forms.Form
Dim datos As DataSet
Dim adaptador As MySqlDataAdapter
Dim cn As New MySqlConnection ' instancia la coneccion
Dim Cart As DataTable = New DataTable 'de la ayuda
Dim CartView As DataView 'de la ayuda
Dim col, row As String
------------------------------------------------------
+ codigo generado por .............
-----------------------------------------------------
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim cn As New MySqlConnection ' instancia la coneccion
cn.ConnectionString = "server=localhost;user id=root;password=;database=encuestas"
Dim adaptador As New MySqlDataAdapter("select * from docentes", cn)
Dim cb As MySqlCommandBuilder
cb = New MySqlCommandBuilder(adaptador) ' le paso al commandBuilder el dataAdapter
datos = New DataSet
cn.Open()
adaptador.Fill(datos, "docentes") 'fill llena de datos al dataset con la tabla
DataGrid1.DataSource = datos 'es el nombre del DataSet
DataGrid1.DataMember = "docentes" 'es el nombre de la tabla dentro del DataSet
'Si no enlazo el control c/vez que la página realiza una acción
'de ida y vuelta al servidor, perdería los cambios del usuario en la cuadrícula
'If Not IsPostBack Then 'en tiempo de diseño
'DataGrid1.DataBind()
'End If
cn.Close()
personalizarGrilla()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
---------------------------------------------------------
Sub personalizarGrilla()
DataGrid1.ForeColor = Color.Navy
DataGrid1.BackColor = Color.White 'Yellow
DataGrid1.AlternatingBackColor = Color.SkyBlue 'Pink
DataGrid1.ReadOnly = False 'se puede editar
DataGrid1.HeaderFont = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
End Sub
---------------------------------------------------------
Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim docentes As DataTable
Dim adaptador As New MySqlDataAdapter("select * from docentes", cn)
'docentes = datos.Tables("docentes")
'Dim registro As DataRow
'adaptador.TableMappings.Add("docentes")
'MsgBox(col & ", " & row)
MsgBox("Las Coordenadas son" & Chr(13) & col & " , " & row)
adaptador.Update(datos, "docentes") 'el método UPDATE contiene comandos del mysqlcommandbuilder (delete, insert , update)
'adaptador.Update(DataRow)
datos.AcceptChanges()

End Sub
-------------------------------------------------------
Private Sub DataGrid1_Navigate(ByVal sender As System.Object, ByVal ne As System.Windows.Forms.NavigateEventArgs) Handles DataGrid1.Navigate
'solo se usa si trabajo con varias tablas
End Sub
---------------------------------------------------------
' obtengo las coordenadas en el evento changed del datagrid
Public Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
row = DataGrid1.CurrentCell.RowNumber
col = DataGrid1.CurrentCell.ColumnNumber
End Sub
End Class

Options: ReplyQuote


Subject
Views
Written By
Posted
Visual 2003 con mysql DataGrid UPDATE
11068
January 28, 2007 04:35AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.