比如有
//简单的业务对象类
public class A
{...}
public class B
{...}在数据访问层中想增加1个方法:
public abstract class SqlHelper
{
...
//根据SQL语句和自己定义的一个方法,返回对象集合
public static List<T> GetBoList(string Sql, AddMethod method)
{
...
}
}
//简单的业务对象类
public class A
{...}
public class B
{...}在数据访问层中想增加1个方法:
public abstract class SqlHelper
{
...
//根据SQL语句和自己定义的一个方法,返回对象集合
public static List<T> GetBoList(string Sql, AddMethod method)
{
...
}
}
public delegate void ToDict(SqlDataReader dr, Dictionary<string, object> result); public static void GetDictionary(string cmdText, Dictionary<string, object> result, ToDict d)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(SqlCnStr);
try
{
PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, null);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
result.Clear();
//ToDict = new ToDict(rdr, result);
while (rdr.Read())
{
d(rdr, result);
}
conn.Close();
}
catch
{
conn.Close();
throw;
}
}好象不行
遍历一张表的时候将SqlDataReader中的数据 根据自己定义的方法:
public delegate void AddMethod(SqlDataReader dr, List<T> result)得到自己需要的业务对象的集合列表啊!
//数据访问层 Data Access Level
public abstract class Dal<T>
{
public delegate T CreateBoMethod(SqlDataReader rdr); public static List<T> GetList(string cmdText, CreateBoMethod method)
{
SqlDataReader rdr = MsSqlHelper.ExecuteReader(cmdText);
List<T> result = new List<T>();
while (rdr.Read())
{
T Bo = method(rdr);
result.Add(Bo);
}
return result;
} public static Dictionary<string, T> GetDictionary(string cmdText, CreateBoMethod method)
{
SqlDataReader rdr = MsSqlHelper.ExecuteReader(cmdText);
Dictionary<string, T> result = new Dictionary<string, T>();
while (rdr.Read())
{
T Bo = method(rdr);
string key = rdr["ZID"].ToString();
result.Add(key, Bo);
}
return result;
}
}