CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Problema con Null Reference Exeption
mbisurgi:
Hola soy nuevo en esto de la programacion y nuevo en el foro. Estoy desarrolando una aplicacion muy sencilla con acceso a base de datos. Pude realizar la conexion sin ningun problema pero el tema es cuando quiero agregar una fila, me tira el error No se controlo NullReferenceExeption.
El error ese me lo tira en la siguiente linea de codigo:
--- Código: vb.net ---fila = Me.dataSet.Tables("Clientes").NewRow()
Les paso el codigo entero asi lo pueden ver mejor. La idea seria que yo en los dos textbox que tengo arriba del data grid, en el formulario, llenarlos con nombre y apellido y me los mande a los campos de la tabla Clientes.
--- Código: vb.net ---Imports System.Data.SqlClient Public Class Form1 Inherits System.Windows.Forms.Form Private conexion As SqlConnection Private dataSet As DataSet Private dataAdapter As SqlDataAdapter Private bs As BindingSource Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim conexion As New SqlConnection conexion.ConnectionString = "Data Source=.SQLEXPRESS;AttachDbFilename=C:" & _ "UsersMaxiAppDataLocalTemporary ProjectsPruebasDatabase1.mdf;Integrated Security=True;User Instance=True" Dim dataAdapter As New SqlDataAdapter("SELECT * From Clientes", conexion) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(dataAdapter) Dim dataSet As New DataSet dataAdapter.Fill(dataSet, "Clientes") Me.DataGridView1.DataSource = dataSet Me.DataGridView1.DataMember = "Clientes" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim fila As DataRow fila = Me.dataSet.Tables("Clientes").NewRow() fila("Nombre") = TextBox1.Text fila("Apellido") = TextBox2.Text Me.dataSet.Tables("Clientes").Rows.Add(fila) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.dataAdapter.Update(Me.dataSet, "Clientes") End SubEnd Class
Espero que me puedan ayudar....
Saludoss
mbisurgi:
Por favor alguien que me ayude con ese error, probe modificar varias cosas pero no hay forma, siempre me va tirando ese error en distintas lineas. Me fije en internet aver si podia enteder que significaba pero no me doy cuenta, si alguien por lo menos me podria explicar que significa para ver si puedo solucuonarlo,
saludoss
zumimoraes:
Prueba de colocar el codigo que conectara con la base de datos dentro de
Try
codigo
Catch ex As Exception
MsgBox(ex.Message)
End Try
A ver que te dice.
Perdona si no te puedo ayudar en algo especifico yo tambien soy nuevo.
gabio2:
1. Imports System.Data.SqlClient
2.
3.
4. Public Class Form1
5. Inherits System.Windows.Forms.Form
6.
7. Private conexion As SqlConnection
8. Private dataSet As DataSet
9. Private dataAdapter As SqlDataAdapter
10. Private bs As BindingSource
11.
12. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
13. Dim conexion As New SqlConnection
14. conexion.ConnectionString = "Data Source=.SQLEXPRESS;AttachDbFilename=C:" & _
15. "UsersMaxiAppDataLocalTemporary ProjectsPruebasDatabase1.mdf;Integrated Security=True;User Instance=True"
16.
17. Dim dataAdapter As New SqlDataAdapter("SELECT * From Clientes", conexion)
18. Dim CB As SqlCommandBuilder = New SqlCommandBuilder(dataAdapter)
19.
20. Dim dataSet As New DataSet
21. dataAdapter.Fill(dataSet, "Clientes")
22.
23. Me.DataGridView1.DataSource = dataSet
24. Me.DataGridView1.DataMember = "Clientes"
25.
26. End Sub
27.
28. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
29. Dim fila As DataRow
30. fila = Me.dataSet.Tables("Clientes").NewRow()
31. fila("Nombre") = TextBox1.Text
32. fila("Apellido") = TextBox2.Text
33. Me.dataSet.Tables("Clientes").Rows.Add(fila)
34. End Sub
35.
36. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
37. Me.dataAdapter.Update(Me.dataSet, "Clientes")
38. End Sub
39. End Class
40.
Ya vi tu burrada :P jajjaja.. y perdona que te lo diga pero es una burrada :P jajjajajajajajaja.. mira tu linea 8.. y mira tu linea 20..
8. Private dataSet As DataSet
20. Dim dataSet As New DataSet
estas declarando 2 veces la misma variable, una en el Load y otra variable Global, la que tu llenas es la que esta dentro del Load, lo que debiste hacer es lo siguiente:
Cambiar tu linea 20 por esto -----> dataSet = New DataSet()
y ya.. :) ... debe funcar. :).. saludos. :)
mbisurgi:
gracias por tu respuesta lo esoty probando pero creo que me voy a decantar por un metodo mas simple que vi en unos videos porque con mucho codigo todavia se me complica jaj
saludosss
Navegación
[#] Página Siguiente
Ir a la versión completa