problemas con la actualizacion de datagrid
Publicado por jose (5 intervenciones) el 20/03/2007 03:40:37
Ya he revisado varios foros acerca de la actualizacion de una base de datos utlizando un datagrid y lo he realizado como en los ejemplos pero me marca el siguiente error
Excepción no controlada del tipo 'System.InvalidOperationException' en mysql.data.dll
Información adicional: Connection must be valid and open
y me lo marca en esta sentencia del codigo
objComando.InsertCommand = cb.GetInsertCommand
la cadena que paso con los parametros de la conexion estan correctas porque ya lo he utlizado en otro programa en donde no utilizo datagrid.
Y si no utilizo las sentencias
objComando.InsertCommand = cb.GetInsertCommand
objComando.DeleteCommand = cb.GetDeleteCommand
objComando.UpdateCommand = cb.GetUpdateCommand
el datagrid se llena pero, no se puede realizar actualizaciones a la bd ya que me aparece el mismo mensage (conection must ..............) en la sentencia
objComando.Update(objDS, "ejemplo")
ESTE ES EL CODIGO COMPLETO
Imports MySql.Data
Imports MySql.Data.MySqlClient
Public Class Form1
Inherits System.Windows.Forms.Form
Dim objComando As MySqlDataAdapter
Dim objDS As New DataSet
Dim objConexion As New MySqlConnection(sCnn)
Private Sub browse_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objConexion.Open()
Dim sSel As String = "SELECT * FROM articulo"
objComando = New MySqlDataAdapter(sSel, sCnn)
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(objComando)
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
' Asignar los comandos al DataAdapter
' (se supone que lo hace automáticamente, pero...)
objComando.InsertCommand = cb.GetInsertCommand
objComando.DeleteCommand = cb.GetDeleteCommand
objComando.UpdateCommand = cb.GetUpdateCommand
objComando.Fill(objDS, "Ejemplo")
Me.dg1.DataSource = objDS.Tables("Ejemplo")
objConexion.Close()
'dg1.Expand(0)
'MsgBox("sssssssssa")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'If objDS.HasChanges Then
objComando.Update(objDS, "ejemplo")
objDS.AcceptChanges()
' End If
End Sub
Y ESTA ES LA CONEXION
Public sCnn As String = "SERVER=localhost;" & _
"DATABASE=inventario;" & _
"UID=root;" & _
"PASSWORD=jose;"
SE supone que deberia funcionar pero, no es asi jejejejeeje.
si me pudieran ayudar en esto se los agradeceria un CHINGO.
SALUDOS!!!!!!!!!!!!
Excepción no controlada del tipo 'System.InvalidOperationException' en mysql.data.dll
Información adicional: Connection must be valid and open
y me lo marca en esta sentencia del codigo
objComando.InsertCommand = cb.GetInsertCommand
la cadena que paso con los parametros de la conexion estan correctas porque ya lo he utlizado en otro programa en donde no utilizo datagrid.
Y si no utilizo las sentencias
objComando.InsertCommand = cb.GetInsertCommand
objComando.DeleteCommand = cb.GetDeleteCommand
objComando.UpdateCommand = cb.GetUpdateCommand
el datagrid se llena pero, no se puede realizar actualizaciones a la bd ya que me aparece el mismo mensage (conection must ..............) en la sentencia
objComando.Update(objDS, "ejemplo")
ESTE ES EL CODIGO COMPLETO
Imports MySql.Data
Imports MySql.Data.MySqlClient
Public Class Form1
Inherits System.Windows.Forms.Form
Dim objComando As MySqlDataAdapter
Dim objDS As New DataSet
Dim objConexion As New MySqlConnection(sCnn)
Private Sub browse_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objConexion.Open()
Dim sSel As String = "SELECT * FROM articulo"
objComando = New MySqlDataAdapter(sSel, sCnn)
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(objComando)
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
' Asignar los comandos al DataAdapter
' (se supone que lo hace automáticamente, pero...)
objComando.InsertCommand = cb.GetInsertCommand
objComando.DeleteCommand = cb.GetDeleteCommand
objComando.UpdateCommand = cb.GetUpdateCommand
objComando.Fill(objDS, "Ejemplo")
Me.dg1.DataSource = objDS.Tables("Ejemplo")
objConexion.Close()
'dg1.Expand(0)
'MsgBox("sssssssssa")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'If objDS.HasChanges Then
objComando.Update(objDS, "ejemplo")
objDS.AcceptChanges()
' End If
End Sub
Y ESTA ES LA CONEXION
Public sCnn As String = "SERVER=localhost;" & _
"DATABASE=inventario;" & _
"UID=root;" & _
"PASSWORD=jose;"
SE supone que deberia funcionar pero, no es asi jejejejeeje.
si me pudieran ayudar en esto se los agradeceria un CHINGO.
SALUDOS!!!!!!!!!!!!
Valora esta pregunta


0