1.- Un proyecto que se conecte a un servidor de BD sea cual sea (por ahora SQL) e indicando una Base de datos y una tabla genere automáticamente el objecto VO y el DAO.
2.- Una clase dbManager que se encarge de realizar todas las operaciones con la base de datos. Voy a intentar hacer tambien un constructor para que el mismo genere los query a ejecutar.
Se que lo que acabo de escribir es algo, más bien muy rollo, pero... espero poder en poco tiempo poner un enlace para que lo probeis. En el trabajo están encantados con él y eso que por ahora está en fase Beta.
Seguiré comentando ...
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
public class clasesVO {
private System.Int32 _id;
public System.Int32 Id{
get { return _id;}
set { _id=value;}
}
private System.String _descripcion;
public System.String Descripcion{
get { return _descripcion;}
set { _descripcion=value;}
}
private System.String _path;
public System.String Path{
get { return _path;}
set { _path=value;}
}
}
public class clasesDAO {
public static string tableName = "clases";
public static object get() {
dbManager.Manager man = new dbManager.Manager(new clasesVO(), tableName, dbManager.sqlOperation.select);
int top = 100;
return man.select(new string[] { }, top);
}
/*
public static object getNombreById(int id) {
dbManager.Manager man = new dbManager.Manager(new clasesVO(), tableName, dbManager.sqlOperation.select);
List
condiciones.Add(new dbManager.dbCondition("id", id, dbManager.typeCondition.igual));
return man.selectWhere(new string[] { "nombre" }, condiciones, 1);
}
*/
public static bool set(clasesVO item) {
dbManager.Manager man;
if (item.Id == 0) {
man = new dbManager.Manager(item, tableName, dbManager.sqlOperation.insert);
return man.insert();
} else {
man = new dbManager.Manager(item, tableName, dbManager.sqlOperation.update);
return man.update();
}
}
public static int setReturn(clasesVO item) {
dbManager.Manager man = new dbManager.Manager(item, tableName, dbManager.sqlOperation.insert);
int lastInsertId = man.insertReturn();
return lastInsertId;
}
public static bool delete(int id){
dbManager.Manager man = new dbManager.Manager(id, tableName, dbManager.sqlOperation.delete);
return man.delete();
}
public static List
List
clasesVO pr = new clasesVO();
PropertyInfo[] prop = pr.GetType().GetProperties();
foreach (System.Data.DataRow row in rows) {
pr = new clasesVO();
foreach (PropertyInfo pi in prop) {
if (pi.CanWrite) {
try {
pi.SetValue(pr, row[pi.Name], null);
} catch (ArgumentException ex) {
Console.WriteLine(ex.Message);
}
}
}
lista.Add(pr);
}
return lista;
}
}
No hay comentarios:
Publicar un comentario