日期:2014-05-17  浏览次数:20885 次

C#关于泛型反射问题,请高手给予详细指点
我能过C#对mysql数据库操作,其中数据操作方面有方法ExecuteNonQuery,表对应的实体类有Users、Department、rule等表。其中ExecuteNonQuery方法定义如下:
/// <summary>
/// 数据库增、删、改操作
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">sql语句</param>
/// <param name="obj">相关实体类</param>
/// <param name="classType">相关实体类类型</param>
/// <returns></returns>
public static int ExecuteNonQuery<T>(string sql, T obj, Type classType)
下面是添加Users记录的方法:
public int AddUsers(Users usersInfo)
  {
  string sql = "Insert into users(UserID,RoleName,Description)VALUES(@UserID,@RoleName,@Description)";
  //调用数据库操作类方法, 执行插入语句
  return MySqlHelper.ExecuteNonQuery(sql, usersInfo, typeof(Users));
  }
其它实体操作类中,也有类似与添加Users表方法,只是相关sql语句内容不同,第二个参数的实体以及第三个参数的类型不同。
————————————————————————————
下面是我的问题:
  我怎么利用一个ExecuteNonQuery方法处理不同表对应实体类的操作?
  这里我在ExecuteNonQuery的第二个参数用了泛型,我的意图是,在调用此方法时,反射得到相应的实体类,将实体类的数据动态的赋值给SQL语句中的参数。
请高手给予指点,最好有完整示例说明,本人将感激不尽。