npgsql lista serializable
Ricardo Javier Aranibar León <[email protected]> Thu, 30 Jun 2011 01:09:42 -0400
| Newsgroups | gmane.comp.gnome.mono.hispano |
|---|---|
| Message-ID | <[email protected]> |
Hola lista
Tengo esta funcion que me devuelve en una lista los datos serializados de
una consulta este método esta implementado con Oracle
como podría traducirlo o como podría hacerlo utilizando npgsql, ya que en
npgsql no se tiene la función ExecuteXmlReader,XmlCommandType y
OracleXmlCommandType
alguna sugerencia les estaré muy agradecido
saludos
Ricardo
/// <summary>
/// Lee un objeto a partir de su ID
/// </summary>
/// <typeparam name="T">Tipo de la colexión de Objetos</typeparam>
/// <param name="iD">ID del objeto</param>
/// <param name="TableName">Nombre de la Tabla</param>
/// <param name="singleType">Tipo de Objeto</param>
/// <returns>Colexión de Objetos leidos</returns>
public T Read<T>(Int64 iD, string TableName, Type singleType)
{
System.Reflection.PropertyInfo[] propiedades;
String sqlText;
XmlReader xmlReader;
OracleCommand cmd = Connection.CreateCommand();
XmlSerializer serializer = new XmlSerializer(typeof(T));
try
{
propiedades = singleType.GetProperties();
sqlText = "SELECT ";
foreach (System.Reflection.PropertyInfo propiedad in propiedades)
{
if (propiedad.PropertyType.Namespace !=
"System.Collections.Generic")
{
sqlText = sqlText + propiedad.Name.ToUpper() + ",";
}
}
sqlText = sqlText.Substring(0, sqlText.Length - 1);
sqlText = sqlText + " FROM " + TableName + " WHERE ID = " +
Convert.ToString(iD);
cmd.CommandText = sqlText;
cmd.XmlCommandType = OracleXmlCommandType.Query;
cmd.XmlQueryProperties.RootTag = typeof(T).Name;
cmd.XmlQueryProperties.RowTag = singleType.Name;
cmd.BindByName = true;
xmlReader = cmd.ExecuteXmlReader();
return (T)serializer.Deserialize(xmlReader);
}
catch (OracleException ex)
{
if (ex.Number == 6550) mensaje = "No tiene privilegios para
seleccionar esta Tabla";
else mensaje = ex.Message; ;
return (T)typeof(T).GetConstructor((new Type[] { })).Invoke(new
object[] { });
}
finally
{
cmd.Dispose();
}
}
_______________________________________________
Mono-hispano mailing list
[email protected]
https://listas.hispalinux.es/mailman/listinfo/mono-hispano