Visual Basic.NET - Problema Dataset

 
Vista:

Problema Dataset

Publicado por Germán (19 intervenciones) el 09/10/2009 23:10:22
Hola, estoy haciendo una aplicación, que se trabaja con Datos de una base mysql en modo desconectado. La base de datos consta de 3 tablas, relacionadas entre si por un campo. Para cargar esos datos, uso un unico Dataset, y 3 DataAdapter (uno por cada tabla), recogiendo en el DataSet la información de las 3 tablas. Hasta ahi todo bien. Los problemas empiezan cuando quiero borrar unos registros de una tabla y actualizar los de otra. No se si despues de borrar datos de una tabla debo actualizar la base de datos y volver a llenar el DataSet, o hacerlo despues de modificar todo.

Gracias
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:Problema Dataset

Publicado por Germán (19 intervenciones) el 09/10/2009 23:31:50
Estuve haciendo algunas pruebas de errores, y me paso lo siguiente:

Despues de borrar algunas filas de una tabla del dataset, hago un update, y si despues pruebo a insertar una fila en ese dataset, me da un error de referencia nula, como si el dataset ya no existiese.....
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:Problema Dataset

Publicado por Damian (824 intervenciones) el 09/10/2009 23:59:56
Porque no nos facilitas tu codigo, la parte en donde tienes el problema y de ser posible la descricpion del error. Saludos.
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:Problema Dataset

Publicado por Germán (19 intervenciones) el 10/10/2009 12:41:14
Hola Damián, gracias por contestar. Este es el codigo:

Dim fila As Integer = Form1.busca_fila()
'GUARDAMOS EL ID DE LA ENTRADA A EDITAR
Dim id As Integer = Form1.Datos.Tables("Entradas").Rows(fila).Item("id_entrada")
Dim Fila_Nueva As DataRow
Dim indice As Integer

'REVISAMOS SI SE HA BORRADO ALGUNA IMAGEN
If fotos_borradas.Length > 0 Then

'PARA CADA IMAGEN BORRADA ACTUALIZAMOS LA BASE DE DATOS
For i As Integer = 0 To fotos_borradas.Length - 1
'BUSCAMOS LA FILA A BORRAR
For j As Integer = 0 To Form1.Datos.Tables("Fotos").Rows.Count - 1
If Not Form1.Datos.Tables("Fotos").Rows(j).RowState = DataRowState.Deleted Then
If Form1.Datos.Tables("Fotos").Rows(j).Item("ruta") = fotos_borradas(i) And Form1.Datos.Tables("Fotos").Rows(j).Item("id_entrada") = id Then
deleteftp(Form1.Datos.Tables("Fotos").Rows(j).Item("ruta"))
Form1.Datos.Tables("Fotos").Rows(j).Delete()
'SI BORRAMOS ESA FILA, PASAMOS A BUSCAR LA FOTO SIGUIENTE EN LA TABLA
Exit For
End If
End If
Next

' Form1.actualiza_bd()
'SI HEMOS MARCADO PARA BORRAR UNA FOTO QUE HEMOS MARCADO PARA SUBIR, LA BORRAMOS DEL ARRAY PARA NO SUBIRLA
indice = Array.IndexOf(fotos_nuevas, fotos_borradas(i))
If indice <> -1 Then
fotos_nuevas(indice) = ""
End If

Next

End If

Form1.Conexion.Open()
Form1.AdaptadorEntradas.Update(Datos.Tables("Entradas"))
Form1. AdaptadorFotos.Update(Datos.Tables("Fotos"))
Form1.AdaptadorVideos.Update(Datos.Tables("Videos"))
Form1.Conexion.Close()

'REVISAMOS SI SE HA AÑADIDO ALGUNA IMAGEN
If fotos_nuevas.Length > 0 Then
'PARA CADA IMAGEN AÑADIDA ACTUALIZAMOS LA BASE DE DATOS
For i As Integer = 0 To fotos_nuevas.Length - 1
'COMPROBAMOS QUE LA FOTO NO HAYA SIDO BORRADA
If fotos_nuevas(i) <> "" Then
//////AQUI DA EL ERROR:No se encontro nullReferenceException
Fila_Nueva = Form1.Datos.Tables("Fotos").NewRow()
Fila_Nueva("id_entrada") = id
Fila_Nueva("ruta") = uploadftp(fotos_nuevas(i))
Form1.Datos.Tables("Fotos").Rows.Add(Fila_Nueva)
End If

Next
End If

'Si estamos editando un contenido, modificamos los valores de la fila correspondiente
Form1.Datos.Tables("Entradas").Rows(fila).Item("titulo") = Replace(txt_titulo.Text, "& ", "&")
Form1.Datos.Tables("Entradas").Rows(fila).Item("fecha") = dt_fecha2.Value
Form1.Datos.Tables("Entradas").Rows(fila).Item("texto") = Replace(rtxt_texto.Text, "& ", "&")
Form1.Datos.Tables("Entradas").Rows(fila).Item("texto") = Replace(rtxt_texto.Text, "€", "€")

Saludos
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:Problema Dataset

Publicado por Damian (824 intervenciones) el 14/10/2009 00:32:14
Fijate en esta web como trabajan con el DataSet quizas te ayude:

http://www.canalvisualbasic.net/manual-net/vb-net/#graph

Cuentanos como te fue. Saludos.
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