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
Public Class Cconexion
Public con As SqlConnection
Sub abrir()
If IsNothing(con) Then
con = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
con.Open()
End If
End Sub
Public Function ejecutar(ByVal orden As String) As Integer
abrir()
Dim cmd As New SqlCommand(orden, con)
Return cmd.ExecuteNonQuery
End Function
Public Function consultar(ByVal orden As String) As SqlDataReader
abrir()
Dim cmd As New SqlCommand(orden, con)
Return cmd.ExecuteReader
End Function
Public Function escalar(ByVal orden As String) As Object
abrir()
Dim cmd As New SqlCommand(orden, con)
Return cmd.ExecuteScalar
End Function
Public Function consulta2(ByVal orden As String) As Data.DataTable
abrir()
Dim Tabla As New Data.DataTable
Dim cmd As New SqlCommand(orden, con)
Dim da As New SqlDataAdapter(cmd)
da.Fill(Tabla)
Return Tabla.Copy
End Function
End Class
y el aspx.vb donde quiero hacer la conexión es (para rellenar el DataTable)
Partial Class _Default
Inherits System.Web.UI.Page
Dim conexion As New Cconexion
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim respuesta As Integer = "4"
Dim dt As New Data.DataTable
dt = Me.conexion.consulta2("select * from T_preguntas")
Dim dt2 As New Data.DataTable
dt2 = Me.conexion.consulta2("select * from T_respuestas")
Me.lblsesion.Text = Session("alumno")
Dim objCommandT As New SqlCommand(dt, objConexion)
Dim objCommandR As New SqlCommand(dt2, objConexion)
Dim objAdapterT As New SqlDataAdapter
Dim objAdapterR As New SqlDataAdapter
objAdapterT.SelectCommand = objCommandT
objAdapterR.SelectCommand = objCommandR
Dim objDs As New Data.DataSet
objAdapterT.Fill(objDs, "Preguntas")
objAdapterR.Fill(objDs, "Respuestas")
Dim relacion As Data.DataRelation = objDs.Relations.Add("Examen", objDs.Tables("Preguntas").Columns("c_idpregunta"), objDs.Tables("Respuestas").Columns("c_Pregunta"))
Dim filaR, filaT As Data.DataRow
For Each filaR In objDs.Tables("Preguntas").Rows
Response.Write("<br>" & filaR("c_Pregunta").ToString)
For Each filaT In filaR.GetChildRows(relacion)
Response.Write("<br>" & filaT("c_Respuestas").ToString)
Next
Next
End Sub
End Class
En este caso me da el siguiente error. Muchas gracias
Un valor de tipo System.Data.DataTable no se puede convertir en String