Visual Basic.NET - asignar variable

   
Vista:
Imágen de perfil de Fco. Javier Medrano Salez

asignar variable

Publicado por Fco. Javier Medrano Salez (50 intervenciones) el 22/09/2015 02:03:44
Hola nuevamente; mi problema es que en el siguiente codigo no puedo asignar la variable "cod" con lo que contiene el campo codigo de la base de datos medico y la tabla pacientes, alguien me puede hechar una mano? el error es "Referencia a objeto no establecida como instancia de un objeto". Previamente tengo conectada la base de datos.

GRACIAS de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub conectar()
        Dim lista As Byte
        Dim cod As String
        Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\medico.accdb"
        Dim cmd As OleDbConnection = New OleDbConnection(conn)
        Dim alumDataSet As DataSet
        Dim tAdapter As OleDbDataAdapter = New OleDbDataAdapter
        tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM pacientes WHERE nombre Like '" + Label12.Text + "'", cmd)
        alumDataSet = New DataSet
        alumDataSet.Tables.Add("pacientes")
        tAdapter.Fill(alumDataSet.Tables("pacientes"))
        lista = alumDataSet.Tables("pacientes").Rows.Count
        If lista <> 0 Then
            MsgBox("tabla llena!!" & lista)
        Else
            MsgBox("tabla vacia!!")
        End If
        cod = alumDataSet.Tables("pacientes", "codigo").ToString
        MsgBox(cod)
 
End Sub
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

asignar variable

Publicado por khristian (17 intervenciones) el 22/09/2015 02:20:23
Y la tabla está vacia...
Que vas a asignar?

Pon el error que te genera y mete el código donde asignas Cod dentro del bloque If
Quizá ni estas llenando el data set.
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
Imágen de perfil de Fco. Javier Medrano Salez

asignar variable

Publicado por Fco. Javier Medrano Salez (50 intervenciones) el 22/09/2015 02:50:13
Hola Khristian muchas gracias, la tabla se llena porque verifico en el msgbox y efectivamente me dice tabla llena 1 (o sea, con un registro que coincide con el nombre que busco con el label12.
el error: "Referencia a objeto no establecida como instancia de un objeto."
en las sugerencias me dice: "Utilice la palabra clave new para crear una instancia de objeto"
el codigo total en mi programita lo dejo a continuacion y me parece que el problema es que conecto dos bases de datos con los mismos nombres y creo que no he cerrado la primera base de datos para utilizar los mismos nombres en la segunda.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Imports System.Data
Imports System.Data.OleDb
Public Class frmPrincipal
    Private conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\est22.mdb"
    Private cmd As OleDbConnection = New OleDbConnection(conn)
    Private alumDataSet As DataSet
    Private tAdapter As OleDbDataAdapter = New OleDbDataAdapter
    Dim alum As String
    Private iniciando As Boolean = True
 
    Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtnombres.Text = ""
        DataGridView1.DefaultCellStyle.Font = New Font("arial", 12)
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
 
    Private Sub txtnombres_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtnombres.TextChanged
        Dim lista As Byte
        If txtnombres.Text <> "" Then
            tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM alumnos WHERE nombre Like '" + txtnombres.Text + "%'", cmd)
            alumDataSet = New DataSet
            alumDataSet.Tables.Add("alumnos")
            tAdapter.Fill(alumDataSet.Tables("alumnos"))
            lista = alumDataSet.Tables("alumnos").Rows.Count
            If lista <> 0 Then
                DataGridView1.DataSource = alumDataSet
                DataGridView1.DataMember = "alumnos"
            End If
        End If
    End Sub
 
    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Label12.Text = DataGridView1.Rows(e.RowIndex).Cells(0).Value()
        Dim nomb As String = Label12.Text
        tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM alumnos WHERE nombre Like '" + Label12.Text + "%'", cmd)
        alumDataSet = New DataSet
        alumDataSet.Tables.Add("alumnos")
        tAdapter.Fill(alumDataSet.Tables("alumnos"))
        Label13.DataBindings.Clear()
        Label14.DataBindings.Clear()
        Label15.DataBindings.Clear()
        Label16.DataBindings.Clear()
        Label17.DataBindings.Clear()
        ListBox1.Items.Clear()
        Label11.DataBindings.Clear()
        Label13.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "grado")
        Label14.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "curp")
        Label16.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "telefono")
        Label15.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "padreotutor")
        Label17.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "enfermedad")
        Label11.DataBindings.Add("text", alumDataSet.Tables("alumnos"), "hermano")
        cmd.Close()
        txtnombres.Text = ""
        DataGridView1.DataSource = Nothing
        DataGridView1.Visible = False
        txtnombres.Visible = False
        Label2.Visible = False
        Button1.Visible = True
        Button4.Visible = True
        conectar()
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        limpiar()
        DataGridView1.Visible = True
        Label2.Visible = True
        txtnombres.Visible = True
        txtnombres.Focus()
        Button1.Visible = False
        Button4.Visible = False
        Button2.Visible = False
        TextBox1.Visible = False
    End Sub
    Private Sub limpiar()
        Label12.Text = ""
        Label13.Text = ""
        Label14.Text = ""
        Label15.Text = ""
        Label16.Text = ""
        Label17.Text = ""
        ListBox1.Items.Clear()
        Label11.Text = ""
 
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        TextBox1.Visible = True
        Button4.Visible = False
        Button2.Visible = True
    End Sub
    Public Sub conectar()
        Dim lista As Byte
        Dim cod As String
        Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\medico.accdb"
        Dim cmd As OleDbConnection = New OleDbConnection(conn)
        Dim alumDataSet As DataSet
        Dim tAdapter As OleDbDataAdapter = New OleDbDataAdapter
        tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM pacientes WHERE nombre Like '" + Label12.Text + "'", cmd)
        alumDataSet = New DataSet
        alumDataSet.Tables.Add("pacientes")
        tAdapter.Fill(alumDataSet.Tables("pacientes"))
        lista = alumDataSet.Tables("pacientes").Rows.Count
        If lista <> 0 Then
            MsgBox("tabla llena!!" & lista)
        Else
            MsgBox("tabla vacia!!")
        End If
        cod = alumDataSet.Tables("pacientes", "codigo").ToString
 
        MsgBox(cod)
 
    End Sub
End Class
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
Imágen de perfil de giancarlo

asignar variable

Publicado por giancarlo (280 intervenciones) el 23/09/2015 19:04:49
quizas sea aqui

1
2
3
4
5
6
7
8
9
10
11
Public Sub conectar()
        Dim lista As Byte
        Dim cod As String
        Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\medico.accdb"
        Dim cmd As OleDbConnection = New OleDbConnection(conn)
'esta linea
        Dim alumDataSet As DataSet
'esta linea
        Dim tAdapter As OleDbDataAdapter = New OleDbDataAdapter
        tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM pacientes WHERE nombre Like '" + Label12.Text + "'", cmd)
        alumDataSet = New DataSet

Tienes declarado con el mismo nombre al iniciar la clase y declaras nuevamente en el sub conectar(), quizas sea ahi, ponle otro nombre o no lo declares. En tu mensaje de error muestra el numero de linea donde se genera el error y marcalo, para conocer mejor. si no te sale, ejecutalo el programa paso a paso para que te ubiques donde es
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
Imágen de perfil de Fco. Javier Medrano Salez

asignar variable

Publicado por Fco. Javier Medrano Salez (50 intervenciones) el 23/09/2015 19:56:50
Gracias Giancarlo, voy a probarlo en la tarde porque no estoy en mi máquina ahora, veo que tal vez sea por ahí el problema, te comunico los resultados.
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