Convertir Objeto a DataSet

16/06/2005 - 23:15 por Kevin Guisbert S. | Informe spam
Hola a todos, quisiera que alguien por favor me ayude, tengo el siguiente
problema, bueno para tener buenas costumbres de programacion en VB.NET estoy
usando Option Strict On y ahora con esta opcion no puedo realizar conversion
de tipos no explicita ahora no se como convertir un objeto a DataSet, tengo
lo siguiente
Dim objDS as DataSet

objDS = Context.Cache("tablacache")

y aqui es donde me da el error, como puedo hacer la conversion??? la unica
solucion que vi es crear una funcion y luego ir llenando uno por uno el
dataSet con el contenido que tengo en Cache :( no creo que esa sea la
solucion por eso es que me encuentro preguntando aqui

Muchas gracias de antemano

Preguntas similare

Leer las respuestas

#6 Tristan
18/06/2005 - 11:16 | Informe spam
En realidad, kike, casi es más difícil encontrar una situación en la que sea
necesario CType. DirectCast se utiliza para hacer downcasting, es decir para
moverse en un sentido descendente de la herencia:

Por ejemplo:

Dim controles As New ArrayList
controles.Add(Button1)
controles.Add(TextBox1)
DirectCast(controles(0), Control).Text = "Botón visto como Control"
DirectCast(controles(1), TextBox).Text = "TextBox"


Es muy típico en eventos:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)
Handles Button1.Click
MsgBox(DirectCast(sender, Button).Name)
End Sub

En general, siempre que quieras ir de lo general a lo particular.

Juan Carlos Badiola
MVP - C#
#7 Eduardo A. Morcillo [MS MVP VB]
18/06/2005 - 16:52 | Informe spam
Mostrar la cita
Si. DirectCast es siempre mas eficiente para casts a los tipos del lenguaje.
En los demas casos es equivalente a CType.

Mostrar la cita
No es asi, depende del tipo de destino y si el cast es desde Object o no. Si
usas CType para hacer un cast de Object a Byte, Char, Date, Decimal, Double,
Integer, Long, Short, Single o String, el CType es convertido a una la
llamada a las clases correspondientes de
Microsoft.VisualBasic.CompilerServices, mientras que si el cast es a otros
tipos es convertido a un castclass de MSIL, que es lo mismo que el
DirectCast. Tambien tiene una diferencia en que el compilador, de ser
posible, chequea que pueda realizarse el cast. Por ejemplo si tienes esto:

Dim o1 As New Clase1
Dim o2 As Clase2

o2 = CType(o1, Clase2) ' Error en compilacion
o2 = DirectCast(o1, Clase2) ' Error en ejecucion

Juntando ambas cualidades uno podria esperar que CType detectara si la clase
implementa la interface IConvertible y llamara al metodo correspondiente,
pero no lo hace.

Mostrar la cita
Bueno, lamentablemente los ejemplos de Microsoft a veces dejan mucho que
desear.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
#8 Raul Carrillo aka Metsuke
11/08/2005 - 03:46 | Informe spam
Solo una pregunta que me esta volviendo loco y no veo la forma (seguro que
es obvia, debo estar bloqueado), en mi caso, el nombre de la clase a la que
queremos convertir obj esta almacenada como cadena String, pues viene de una
seleccion en un combo ¿hay forma de hacer DirectCast pasando como segundo
parametro el nombre de la clase a la que convertir y no el "type object"?

En codigo

Dim strConvertirA as String = "MiClase"
Dim obj as Object = "Hola"
Dim obj2 as MiClase = DirectCast (obj, <aqui es donde no acierto a convertir
el string en un objeto type valido>)

... seguro que es tan obvio que me dare de bofetadas despues, pero no
consigo verlo...

Gracias de antemano.

Saludos

Raul Carrillo aka Metsuke


"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Mostrar la cita
#9 Eduardo A. Morcillo [MS MVP VB]
11/08/2005 - 05:20 | Informe spam
Mostrar la cita
Si es hacer un cast, no tiene sentido lo que quieres hacer porque debes
tener declarada la variable con el tipo de destino. Entonces si sabes el
tipo de destino al momento de codificar directamente lo pones.

Ahora si lo que quieres es una verdadera conversion (por ejemplo de String a
MiClase) necesitas algo mas complejo. Como primera medida alguna de las
clases debera tener asociado un TypeConverter y este TypeConverter debera
implementar la conversion que quieres. Luego necesitaras obtener ese
TypeConverter para que realice la conversion y para ello usas el metodo
GetConverter de la clase TypeDescriptor pasandole el objeto. Lo unico que
falta es llamar a ConvertFrom (o ConvertTo) del TypeConverter. El Type
puedes obtenerlo desde el string mediante Type.GetType.
Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
#10 Raul Carrillo aka Metsuke
11/08/2005 - 10:47 | Informe spam
Gracias, le echare un vistazo a fondo. Estaba claro que estaba totalmente
bloqueado y que lo que intentaba era una locura. Voy a reenfocar el
problema.

De nuevo gracias por la ayuda.

Saludos

Raul Carrillo aka Metsuke

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida