• Lunes 29 de Abril de 2024, 00:11

Autor Tema:  Problema con la conexión a la bd desde una clase  (Leído 1003 veces)

igonfil

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema con la conexión a la bd desde una clase
« en: Sábado 20 de Febrero de 2010, 13:41 »
0
Hola a tod@s. Tengo un problema para conectarme a la bd desde una clase externa que estoy conpartiendo con todo el proyecto para no tener que crear la conexión en cada una de los formularios. La clase con la conexión es la siguiente
Código: vb.net
  1.  
  2.  
  3. Public Class Cconexion
  4.  
  5. Public con As SqlConnection
  6. Sub abrir()
  7. If IsNothing(con) Then
  8. con = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
  9. con.Open()
  10. End If
  11. End Sub
  12. Public Function ejecutar(ByVal orden As String) As Integer
  13. abrir()
  14. Dim cmd As New SqlCommand(orden, con)
  15. Return cmd.ExecuteNonQuery
  16. End Function
  17. Public Function consultar(ByVal orden As String) As SqlDataReader
  18. abrir()
  19. Dim cmd As New SqlCommand(orden, con)
  20. Return cmd.ExecuteReader
  21. End Function
  22.  
  23. Public Function escalar(ByVal orden As String) As Object
  24. abrir()
  25. Dim cmd As New SqlCommand(orden, con)
  26. Return cmd.ExecuteScalar
  27. End Function
  28. Public Function consulta2(ByVal orden As String) As Data.DataTable
  29. abrir()
  30. Dim Tabla As New Data.DataTable
  31. Dim cmd As New SqlCommand(orden, con)
  32. Dim da As New SqlDataAdapter(cmd)
  33. da.Fill(Tabla)
  34. Return Tabla.Copy
  35. End Function
  36.  
  37. End Class
  38.  
  39.  
y el aspx.vb donde quiero hacer la conexión es (para rellenar el DataTable)

Código: vb.net
  1.  
  2. Partial Class _Default
  3. Inherits System.Web.UI.Page
  4. Dim conexion As New Cconexion
  5. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  6. Dim respuesta As Integer = "4"
  7.  
  8. Dim dt As New Data.DataTable
  9. dt = Me.conexion.consulta2("select * from T_preguntas")
  10. Dim dt2 As New Data.DataTable
  11. dt2 = Me.conexion.consulta2("select * from T_respuestas")
  12.  
  13. Me.lblsesion.Text = Session("alumno")
  14. Dim objCommandT As New SqlCommand(dt, objConexion)
  15. Dim objCommandR As New SqlCommand(dt2, objConexion)
  16. Dim objAdapterT As New SqlDataAdapter
  17. Dim objAdapterR As New SqlDataAdapter
  18. objAdapterT.SelectCommand = objCommandT
  19. objAdapterR.SelectCommand = objCommandR
  20. Dim objDs As New Data.DataSet
  21. objAdapterT.Fill(objDs, "Preguntas")
  22. objAdapterR.Fill(objDs, "Respuestas")
  23. Dim relacion As Data.DataRelation = objDs.Relations.Add("Examen", objDs.Tables("Preguntas").Columns("c_idpregunta"), objDs.Tables("Respuestas").Columns("c_Pregunta"))
  24. Dim filaR, filaT As Data.DataRow
  25. For Each filaR In objDs.Tables("Preguntas").Rows
  26. Response.Write("<br>" & filaR("c_Pregunta").ToString)
  27. For Each filaT In filaR.GetChildRows(relacion)
  28. Response.Write("<br>" & filaT("c_Respuestas").ToString)
  29. Next
  30. Next
  31. End Sub
  32. End Class
  33.  
  34.  
  35.  
En este caso me da el siguiente error. Muchas gracias
Citar
Un valor de tipo System.Data.DataTable no se puede convertir en String