Aplicación Windows Forms: error System.NullReferenceException
Frecuentes
Visto 518 veces
0
Buenos días,
He estado tratando de averiguar la fuente del error en mi aplicación. ¿Qué es esta función (GetConcentrations()
) es mostrar datos de mi base de datos en un DataGridView. La función se llama en PageLoad pero funciona bien, pero cuando la llamo en otro Sub, aparece este error.
¿Alguien podría ayudarme? Ya probé de diferentes maneras.
¡Gracias!
Aquí está el código:
Private Sub GetConcentrations()
Dim conString As String = ConfigurationManager.ConnectionStrings("dbAsthmaConnectionString").ConnectionString
Me.dataAdapter = New SqlDataAdapter("Select * from tblConcentrations", conString)
'Dim adapter As New SqlDataAdapter("Select * from tblConcentrations", conString)
Dim dataset As New Data.DataSet
Try
Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapter)
Dim table As New DataTable()
table.Locale = System.Globalization.CultureInfo.InvariantCulture
Me.dataAdapter.Fill(table)
'Dim datasetgetconcentrations = New DataSet
Me.dataAdapter.Fill(dataset)
Me.bindingSource1.DataSource = table
DataGridView3.AutoResizeColumns(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader)
DataGridView3.DataSource = dataset.Tables(0)
dataset.Dispose()
Catch ex As Exception
MsgBox("Failed to display the concentration table (GetConcentrations)!", MsgBoxStyle.Information)
End Try
'Dim ConcentrationValue As Double = DataGridView2.Rows.Contains
'TextBoxCurrentConcentration.Text = txtMessage.Text
End Sub
1 Respuestas
0
No entiendo por qué llamas al método Fill dos veces.
Una vez para llenar un DataTable y otra vez para llenar un DataSet. Solo se necesita realmente el del conjunto de datos. ¿Podría probar si esto cambia algo en su problema?
Dim ds as New DataSet
ds.Locale = System.Globalization.CultureInfo.InvariantCulture
Me.dataAdapter.Fill(ds)
DataGridView3.AutoResizeColumns(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader)
DataGridView3.DataSource = ds.Tables(0)
Además, no elimine su conjunto de datos al salir, todavía lo está usando.
En este caso, es mejor dejar que Garbage Collection se encargue de esta tarea.
contestado el 22 de mayo de 12 a las 21:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas vb.net or haz tu propia pregunta.
Por favor, publique el código, no una imagen. Además, muestre qué línea obtiene la excepción. Muestre también la pila de llamadas completa de la excepción, si es posible. - Steven Doggart
La
dataset.Dispose()
no tiene mucho sentido ya que parece que lo estás usando para enlazar tus controles. Por cierto, publicar una captura de pantalla completa es difícil de leer. - LarsTechhola te puse el codigo Destaca Me.dataAdapter.Fill(conjunto de datos) - Jpeh Noynay