Duda ASP

KrITIK4L

Perdon, edito... porque he soltado esto aquí sin más, y no es eso...

Una amiga tiene un problema serio, está peleandose con el proyecto de la última asignatura que le queda para acabar la carrera (Informática de Gestión) y tiene la entrega el miércoles, a lo cual no llega así a priori ni de coña, así que he pensado que a lo mejor alguien de MV quiera echar una mano... el problema es tal que:

Respecto al proyecto, se trata de una aplicación web que se conecta con una BBDD, vuelca su contenido a una lista y después hace cosas con dicho contenido. El tema donde hemos encallado consiste en lo siguiente:

1.- La BBDD tiene 4 tablas: Cliente, Propuesta, Comercial y Ventas.
2.- Mediante una query pretendemos volcar su contenido en la lista, así:

    Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Cliente JOIN Propuesta", con)
    con.Open()
    Dim drCliente As SqlDataReader = cmd.ExecuteReader()
    While drCliente.Read()
        Dim cli As Cliente = New Cliente()
        Dim prop As Propuesta = New Propuesta()
        cli.direccion = drCliente.GetString(2)
        cli.idCliente = drCliente.GetInt32(1)
        cli.nombre = drCliente.GetString(0)
        cli.telefono = drCliente.GetInt32(3)
        prop.idPropuesta = drCliente.GetString(5)
        cli.m_propuesta.idComercial = drCliente.GetInt32(4)
        al.Add(cli)
    End While 

Siendo los objetos Cliente y Propuesta los siguientes:

Public Class Cliente
Private _direccion As String
Private _idCliente As Integer
Private _nombre As String
Private _telefono As Integer
Public m_propuesta As Propuesta

Public Class Propuesta
Private _nombre As String
Private _idPropuesta As Integer
Private _aprobada As String
Private _estado As String
Private _idComercial As String
Public m_Cliente As Cliente

Pero nos da error: en Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Cliente JOIN Propuesta", con)
Dice que no controlamos excepciones. La BBDD tiene datos y son correctos.

Otra de las dudas que le surgen es cómo acceder a los campos m_propuesta y m_Cliente, es decir, a los que se definen a través de la asociación entre clases. Tiene que mostrar uno de ellos en un formulario pero como la query da error... no sabe que hacer...

NeB1

#1 desde mi completo desconocimiento de ASP, quizás ese error quiera decir que tienes que meter esas instrucciones dentro de:

try


Catch exc As Exception 
            MessageBox.Show("Error" & exc.Message)
End Try
KrITIK4L

Muchas gracias neb1, a ver si por ahí rula, si no, a seguir buscando =)

NeB1

#3 Si bueno, pero no pongas lo de message box que eso es de VB.net xD

SaReDnAL

Yo en asp no lo tengo claro, pero en aspx, lo mas comodo es declararte un dataset y acceder a los campos resultantes de la tabla

Imports System.Data
Imports System.Data.SqlClient
dim cadenaconex as string = "la cadena de conexion a la bd"
Dim sqlconn As new SqlConnection(cadenaconex)


Dim sqlcomm As new SqlCommand("SELECT * FROM Cliente JOIN Propuesta", sqlconn)
Dim sqladapter As new SqlDataAdapter(sqlcomm)

Dim ds as new dataset (Este dataset lo llenamos con la tabla resultante)

sqlconn.open()

If sqlconn.State = ConnectionState.Open Then

sqladapter.fill(ds) Aqui llenamos el dataset.

End if

Una vez ejecutado esto, se puede acceder a los campos del dataset y preguntas por ellos asi

ds.tables(0).rows(numero de fila).item("NOMBREDELCAMPO").value (creo recordar)

Para acceder a las variables publicas de la clase te tienes que crear una propiedad:

Public m_cliente As String

Public Property mcliente
    Get
        Return m_cliente
    End Get
    Set(ByVal value)
        mcliente = m_cliente
    End Set
End Property

Lo he escrito de memoria, puede tener fallos.
Si está utilizando asp antiguo lo mismo no funciona.
No se si te referías a aspx que es lo que se lleva mas ahora

Saludos

Usuarios habituales

  • SaReDnAL
  • NeB1
  • KrITIK4L