|
|||||||
|
|
LinkBack | Herramientas | Buscar en Tema | Desplegado |
|
|||
|
Buenos días:
Estoy tratando de encontrar una explicación a porque no puedo instanciar un OracleDataReader haciendo: dim miDr as new OracleDataReader en lugar de dim miDr as OracleDataReader miDr = comando.ExecuteReader ¿Alguien me lo puede explicar?. Muchas gracias
|
|
||||
|
Saludos:
El DataReader es un componente de .NET, que lee origenes de datos y trabaja con ellos. NO es un objeto que se pueda cambiar. NetFramework establece como se llama y declara y es invariable. Mira mas en: Recuperar datos mediante DataReader Espero ayude: JOSE LUIS
__________________
Exodo 20:1-17 ----> Dios NO los llamo LAS DIEZ RECOMENDACIONES. |
|
|||
|
Muchas gracias Jose Luis:
Si, Ya se que es una cuestión del Framework pero me preguntaba como estaría diseñada la clase internamente. He hecho una prueba y he llegado a la siguiente hipótesis. En la clase OracleDataReader si existe constructor a pesar de lo que dice la documentación de Microsoft. No me imagino una clase sin constructor. No podrían instanciarse objetos de ningún modo. Lo que seguramente pasa es que el constructor no es público sino friend, es decir solo puede accederse desde la clase y otras clases del namespace. Por ser friend no lo puedo llamar directamente. En cambio si puedo hacerlo desde un método público de otra clase del mismo namespace que en la misma clase instancie el objeto. Me explico: Public Class Class1 Private _nombreCompleto As String Friend Sub New(ByVal nombreCompleto As String) Me._nombreCompleto = nombreCompleto End Sub Public Function mayusculas() As String Return Me._nombreCompleto.ToUpper End Function End Class Public Class Class2 Private _nombre As String Private _apellidos As String Public Property nombre() As String Get Return Me._nombre End Get Set(ByVal value As String) Me._nombre = value End Set End Property Public Property apellidos() As String Get Return Me._apellidos End Get Set(ByVal value As String) Me._apellidos = value End Set End Property Public Function generaClase1() As Class1 Dim objetoclase1 As New Class1(String.Format("{0}, {1}", Me.apellidos, Me.nombre)) ![]() Return objetoclase1 End Function Public Sub New(ByVal nombre As String, ByVal apellidos As String) Me.nombre = nombre Me.apellidos = apellidos End Sub End Class Finalmente ... Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim oclase1 As Class1 Dim oclase2 As New Class2("Sebastian", "Vettel") oclase1 = oclase2.generaClase1() MessageBox.Show(oclase1.mayusculas) End Sub End Class Bueno esta es mi hipótesis. ¿Podrías confirmarme si estoy en lo cierto?. Muchas gracias por tu ayuda |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|