Visual Basic.NET - DataTable ya pertenece a este DataSet

 
Vista:
sin imagen de perfil

DataTable ya pertenece a este DataSet

Publicado por Alberto (26 intervenciones) el 13/12/2023 05:46:51
A partir de una misma tabla quiero presentar en la pantalla dos listas, una con todos los campos y otra con menos campos. He creado dos DGV y en la fase de diseño he quitado las columnas que me interesaban para cada DGV Como el ds es el mismo, he creado un solo ds, adp y tabla que he colocado en la DGV extensa o en la reducida. OK. A la primera me funciona perfectamente, a la segunda me dice: "DataTable denominada "tabla" ya pertenece a este DataSet". Entonces he creado dos ds, dos adp y dos tablas , un conjunto para cada DGV, y me funciona perfectamente en cada DGV, una vez, a la segunda me vuelve a decir lo mismo. Para puentear este error, en VB6.0 hay una instrucción: "IF EXIST..." y si te encuentras con algo ya existente lo puenteas. En Visual Basic con Visual Studio parece que no existe esta posibilidad. Pregunto¿ hay alguna forma de dejar a cero el ds,y adp al salir para que no me vuelva a dar este mensaje? O lo de "If EXists..." aunque esto último no lo encuentro. Muchas 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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataTable ya pertenece a este DataSet

Publicado por Phil Rob (1558 intervenciones) el 13/12/2023 16:20:01
Hola,

Con UNA DataTable, puedes mostrar datos en varios componentes, unos campos en un DGV, otro en un ComboBox, otro todavía en TextBox, ...
Por ejemplo :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub MostrarDatos()
 
        For Each C As Control In Me.Controls  ' Para muchas pruebas, es necesario de borrar anticas enlaces
            Try
                C.DataBindings.Clear()
            Catch
            End Try
        Next
 
        ' DataGridView
        DGV.DataSource = MisDatos.Tables(NombreTablaEnDB)   ' Todos campos
 
        ' ComboBox
        CB.DataSource = MisDatos.Tables(NombreTablaEnDB)
        CB.DisplayMember = "NombreDelCampoAMostrarAqui"
 
 
        ' ListBox
        LB.DataSource = MisDatos.Tables(NombreTablaEnDB)
        LB.DisplayMember = "NombreDelCampoAMostrarAqui"
 
        ' TextBox
        TB.DataBindings.Add("Text", MisDatos.Tables(NombreTablaEnDB), "NombreDelCampoAMostrarAqui")
 
 
    End Sub

Si debes cargar segunda tabla en DataSet, debes lo dar otro nombre.
Por ejemplo :
1
2
3
4
Dim MiAdapter As MySqlDataAdapter = New MySqlDataAdapter(Consulta, MiConexion)
        MiAdapter.Fill(UnaTabla)
        UnaTabla.TableName = NombreDeLaSegundaTabla
        MisDatos.Tables.Add(UnaTabla)

Si debes re-cargar una tabla con mismo nombre, es necesario de la eliminar del DataSet, pero perdes también sus datos.
Por ejemplo :
1
2
3
4
Try
            MisDatos.Tables(NombreDeLaTablaAReemplazar).Dispose()
            MisDatos.Tables.Remove(NombreDeLaTablaAReemplazar)
        Catch

Espero que este te ayudará ...
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