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

DataSet

Estas en el tema de DataSet en el foro de .NET en Foros del Web. Alguien puede ayudarme con este error: No se encontró ningún campo o propiedad 'EMPRESA.NOMBRE' en el origen de datos seleccionado. Este es el SP: CREATE ...
  #1 (permalink)  
Antiguo 26/06/2006, 09:59
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Pregunta DataSet

Alguien puede ayudarme con este error: No se encontró ningún campo o propiedad 'EMPRESA.NOMBRE' en el origen de datos seleccionado.

Este es el SP:
CREATE PROCEDURE CargarEmpresa(
@IdSol nvarchar(50)
)
AS
SELECT EMPRESA.NOMBRE, EMPRESA.DIRECCION, MUNICIPIOS.NOMBRE , EMPRESA.COD_POSTAL,
SECTORES.NOMBRE
FROM EMPRESA INNER JOIN
SECTORES ON EMPRESA.ID_SECTOR = SECTORES.ID_SECTOR INNER JOIN
MUNICIPIOS ON EMPRESA.ID_MUNICIPIO = MUNICIPIOS.ID_MUNICIPIO
WHERE EMPRESA.ID_SOLICITANTE=@IdSol
GO

Probe el SP en el Sql Analyzer y obtengo los resultados que quiero, pero al ser invocado desde asp.net a traves del sig. codigo me da el error indicado en la parte superior.


Private Function MostrarEmpresa(ByVal SqlConn As SqlConnection, ByVal strIdSol As String)

Dim SqldaEmp As New SqlDataAdapter

SqldaEmp.SelectCommand = New SqlCommand("CargarEmpresa", SqlConn)

SqldaEmp.SelectCommand.CommandType = CommandType.StoredProcedure

SqldaEmp.SelectCommand.Parameters.Add(New SqlParameter("@IdSol", SqlDbType.NVarChar, 50))

SqldaEmp.SelectCommand.Parameters("@IdSol").Direct ion = ParameterDirection.Input

SqldaEmp.SelectCommand.Parameters("@IdSol").Value = strIdSol

Dim dsEmp As New DataSet

SqlConn.Open()

SqldaEmp.SelectCommand.ExecuteNonQuery()

SqldaEmp.Fill(dsEmp, "EMPRESA")

SqlConn.Close()

dgEmp.DataSource = dsEmp.Tables("EMPRESA")

dgEmp.DataBind()

end function

El problema esta en el dataset, pero no se como solucionarlo

Alguien más experimentado que yo puede ayudarme :
  #2 (permalink)  
Antiguo 27/06/2006, 08:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Creo que te ésta sobrando ésta línea

SqldaEmp.SelectCommand.ExecuteNonQuery()

Debería ser así:

Cita:
...
Dim dsEmp As New DataSet
SqlConn.Open()
SqldaEmp.Fill(dsEmp, "EMPRESA")
SqlConn.Close()
....
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 27/06/2006, 10:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Hola,

Ya probe haciendo eso, pero el problema persiste. Conoces alguna otra posible solución?

Gracias!
  #4 (permalink)  
Antiguo 27/06/2006, 16:04
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
si el error te lo marca al momento de hacer el bind en el grid...

es que relacionaste alguna columna con el campo "EMPRESA.NOMBRE" debiendo ser solo "NOMBRE" ya que ya estas seleccionando la tabla empresa...

adicionalmente creo que deberia ser un default view despues del nombre de la tabla...


  #5 (permalink)  
Antiguo 27/06/2006, 21:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Ok!...te entiendo Andres95, pero si hago eso puedo crear ambiguedades en los campos...recuerda que en la tabla sectores y municipios tengo tambien campos llamados nombre. MMUNICIPIOS.NOMBRE, SECTORES.NOMBRE Y EMPRESA.NOMBRE. Eso solo puedo hacerlos con COD_POSTAL y DIRECCION.

Alguna otra sugerencia?

Gracias!
  #6 (permalink)  
Antiguo 28/06/2006, 02:05
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
A ver, yendo por partes... Has depurado paso a paso? Cuál es la linea que te da ese error? El ExecuteNonQuery? O cual?

Y luego, veo algo raro, esto:
Código:
SqldaEmp.SelectCommand.ExecuteNonQuery()
SqldaEmp.Fill(dsEmp, "EMPRESA")
El Procedimiento parece ser que devuelve un conjunto de filas... Entonces, ExecuteNonQuery para que? Este se usa cuando el resultado del procedimiento no devuelve nada, pero en tu caso tiene toda la pinta que devuelve un conjunto de registros. O quizá se me escapa algo, que en tal caso agradeceria una explicación.
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 28/06/2006, 07:56
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Cita:
Iniciado por jorge1980
Ok!...te entiendo Andres95, pero si hago eso puedo crear ambiguedades en los campos...recuerda que en la tabla sectores y municipios tengo tambien campos llamados nombre. MMUNICIPIOS.NOMBRE, SECTORES.NOMBRE Y EMPRESA.NOMBRE. Eso solo puedo hacerlos con COD_POSTAL y DIRECCION.

Alguna otra sugerencia?

Gracias!

Ya checaste como viene el nombre de la columna en el dataset?

para que tome un nombre que deseas solo ponle un alias al select en el SP y listo!
  #8 (permalink)  
Antiguo 28/06/2006, 17:15
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Hola, Montenzion..estas en lo cierto el fragmento de codigo que estoy programando devuelve un registro y el "SqldaEmp.SelectCommand.ExecuteNonQuery()
" fue un error de novato.

El error me lo vota en dgEmp.DataBind()

diciendome No se encontró ningún campo o propiedad 'EMPRESA.NOMBRE' en el origen de datos seleccionado.
  #9 (permalink)  
Antiguo 28/06/2006, 17:18
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Hola Andres95 dejame probar lo que me dices y luego te cuento.

Gracias de todas formas!
  #10 (permalink)  
Antiguo 29/06/2006, 02:12
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Hola jorge1980,
Entonces, casi casi casi seguro, que va por donde te comenta Andres95 en este post:
Cita:
Iniciado por Andres95
si el error te lo marca al momento de hacer el bind en el grid...
es que relacionaste alguna columna con el campo "EMPRESA.NOMBRE" debiendo ser solo "NOMBRE" ya que ya estas seleccionando la tabla empresa
Averigua los nombres que tiene cada columna realmente en el datasource, y referencialas con ese nombre desde el datagrid.
Saludos.
__________________
..:: moNTeZIon ::..
  #11 (permalink)  
Antiguo 29/06/2006, 06:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Si!...realice lo me dijo Andres95...colocarle un alias a cada columna de la BD y funciona perfectamente.

Gracias amigos!!!!!
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 21:26.