Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Estas en el tema de Ayuda!!! Referencia a objeto no establecida como instancia de un objeto en el foro de .NET en Foros del Web. Q tal gente del foro Tengo un problema y no se como solucionar Hago una aplicacion utilizando visual.net y sql server, todo bien en la ...
  #1 (permalink)  
Antiguo 11/06/2010, 16:12
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Q tal gente del foro

Tengo un problema y no se como solucionar
Hago una aplicacion utilizando visual.net y sql server, todo bien en la conexion, consultas e ingresos de datos, pero cuando ingreso datos en una tabla me despliega el mensaje : "Referencia a objeto no establecida como instancia de un objeto", aunque si hace el ingreso de datos a dicha tabla pero me despliega ese mensaje y necesito que el ingreso sea totalmente limpio, sin ningun mensaje por q sera hecho remotamente.

Mi codigo es algo asi (otras funciones de consulta estan bien, pero no se q pasa con esta:)

Imports System.Data
Imports System.Data.SqlClient
Imports SQLDatos
Imports System.IO
Imports System.Drawing.Imaging 'para trabajar con los formatos de imagen

//En esta parte hacemos varias consultas, imaganetes, y otros ingresos, y van bien

Public Class Form1
Dim StrCx As String = "Data Source=.;Initial Catalog=FloresValle;Integrated Security=True"
Private SQL As New SQLAcceso(StrCx)
Public Cn As New SqlConnection(StrCx) 'creamos un objeto tipo SqlConnection guardando el string de conexion
Public Ds As New DataSet 'dataSet creado a nivel global

//La operacion de ingreso es la siguiente:
Private sub IngresosItemProducto()
try
Dim cmd As New SqlCommand("insertxcat", Cn)'insertxcat es un procedimiento almacenado en sql server
cmd.CommandType = CommandType.StoredProcedure
Cn.Open()

Dim opara1 As New SqlParameter("@codigo_producto", SqlDbType.NVarChar)
opara1.Size = 50
opara1.Value = TxtBoxIngresosCod.Text
cmd.Parameters.Add(opara1)

Dim opara2 As New SqlParameter("@descripcion", SqlDbType.NVarChar)
opara2.Size = 50
opara2.Value = LblIngresosProd.Text
cmd.Parameters.Add(opara2)

Dim opara3 As New SqlParameter("@id_proveedor", SqlDbType.NVarChar)
opara3.Size = 50
opara3.Value = LblIngresoIDProv.Text
cmd.Parameters.Add(opara3)

Dim opara4 As New SqlParameter("@precio", SqlDbType.SmallMoney)
opara4.Value = LblIngresosPrecio.Text
cmd.Parameters.Add(opara4)

Dim opara5 As New SqlParameter("@cantidad", SqlDbType.SmallInt)
opara5.Value = TxtBoxIngresosCant.Text
cmd.Parameters.Add(opara5)

Dim oda As New SqlDataAdapter
oda.SelectCommand = cmd
oda.SelectCommand.Connection = Cn

Dim ods As New DataSet
oda.Fill(ods, "Documento")

DGVIngresos.DataSource = ods.Tables("Documento")
Cn.Close()
Catch SqlExc As SqlException
' MsgBox("Error en los campos")
'End Try


la he revisado, la he creado como sub o como funcion y nada
probe en visual.net 2005 y 2008, y sigue saliendo el mismo mensaje

por favor alguien q me ayude
Gracias
  #2 (permalink)  
Antiguo 11/06/2010, 17:02
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 7 meses
Puntos: 30
Respuesta: Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Ese error es el que te da el try cath o la aplicacion se cae luego de la ejecucion?
  #3 (permalink)  
Antiguo 11/06/2010, 18:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Hay dos puntos posibles de falla, por lo que se ve a vuelo de pájaro:

1) Abres la conexión después de crear el SqlCommand. Eso no es correcto. La conexión debe existir y estar abierta antes de crear esos objetos.
2) El SP por alguna razón no devuelve lo esperado o devuelve error. En ese caso no hay DataTable para asignar como DataSource.

Fíjate si es alguno de esos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/06/2010, 21:09
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Hola Angel_Nemo, evidentemente, estas instanciando o refrerenciando un objeto que no has establecido o estas aisgnando erroneamente....

Como dice gnzsoloyo lo correcto es tener la conexion abierta y disponible antes de empezar a crear/instanciar un objeto, yo te recomiendo, que corras el codigo paso a paso, colocando un breackpoint en el inicio del codigo y ejecutando (con F11) para que veas que valor te trae cada variable, y especificamente donde se cae el programa o arroja el error...

Estos errores suelen ser tontos, pero sino se localiza exactamente donde se cae, no podremos saber que esta funcionando de forma erronea....

No tengo a mano Visual para probar tu codigo, tratare montarlo por consola a ver si veo el error, saludos espero ser de ayuda

Auqnue a ojo de pajaro veo...

DGVIngresos.DataSource = ods.Tables("Documento")
Cn.Close()

Donde estas declarondo o instanciando el objeto Tables?
el DGV donde lo estas invocando antes de asignarle ese table?
o lo usas como metodo? Alli me confundi y no entendi, pero puede que sea en ese punto precisamente que se cae.

Última edición por harukatenou; 11/06/2010 a las 21:15
  #5 (permalink)  
Antiguo 12/06/2010, 10:14
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Gracias por responder

Antes de todo debo aclarar que soy un poco novato en esto de utilizar Visual net de manera conjunta con sql server.
La aplicacion no se cae, cumple su proposito de ingresar los datos en la tabla, si dentro del try coloco algo como un msgbox q diga ("registro ingresado"), este se manifiesta correctamente, pero luego de esto ma sale de la misma manera como un cuadro de dialogo el mensaje "Referencia a objeto no establecida como instancia de un objeto"

Y probare las sugerencias que me han hecho, de momento estoy de salida al trabajo, pero las probare, aunque este codigo es solo una manera de las q he probado hacerlo, pero verificare.

Muchas gracias
  #6 (permalink)  
Antiguo 13/06/2010, 09:12
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda!!! Referencia a objeto no establecida como instancia de un objeto

Gracias jaullo, gnzsoloyo, harukatenou

Corregi abriendo la conexion antes de crear el sqlcommand, para hacerlo correctamente.
El datatable asignado como datasource esta ahi mismo:
Dim oda As New SqlDataAdapter
oda.SelectCommand = cmd
oda.SelectCommand.Connection = Cn

Dim ods As New DataSet
oda.Fill(ods, "Documento")

DGVIngresos.DataSource = ods.Tables("Documento")'aqui precisamente
Cn.Close()

y al correr ejecutando el breakpoint vi que era por un error en la consulta, puesto que en la misma ventana voy actualizando a medida que ingreso los datos y se puede visualizar la tabla en un Datagridview. Esta es solo una parte de mi codigo en esta ventana yo veo imagenes, y hasta un Crystal report y por eso el codigo era muy amplio y no daba con el error.

Muchas gracias a todos uds.

Etiquetas: establecida, instancia, objeto, referencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.