MySQL通过实例化对象参数查询实例讲解

在本篇文章里我们给大家分享了关于MySQL如何通过实例化对象参数查询数据的相关知识点内容,有需要的朋友们可以测试参考下。

本篇文章给大家带来的内容是关于MySQL如何通过实例化对象参数查询数据 ?(源代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

 public static string QueryByEntity(T t) where T : new() {  string resultstr = string.Empty; MySqlDataReader reader = null;  try { Type type = typeof(T); PropertyInfo[] properties = type.GetProperties();    string select = string.Format("Select * from {0} {1}", type.Name, "{0}");    string where = string.Empty;    foreach (PropertyInfo property in properties) {      var value = t.GetPropertyValue(property);      if (value != null && !value.Equals(property.GetDefaultValue())) {        if (string.IsNullOrEmpty(where)) {          where = string.Format(" where {0}='{1}' ", property.Name, value); }        else {          where = string.Format(" {0} and {1} = '{2}' ", where, property.Name, value); } } }    select = string.Format(select, where); MySqlConnection connection = OpenConnection();    if (connection == null)      return resultstr; MySqlCommand _sqlCom = new MySqlCommand(select, connection); reader = _sqlCom.ExecuteReader(); List tList = new List();    while (reader.Read()) { T t1 = new T();      foreach (PropertyInfo property in properties) {        if (!string.IsNullOrEmpty(reader[property.Name].ToString())) { property.SetMethod.Invoke(t1, new object[] { reader[property.Name] }); } } tList.Add(t1); } resultstr = JsonConvert.SerializeObject(tList); }  catch (Exception ex) { Logging.Error(string.Format("查询数据库失败,{0}", ex.Message)); }  finally {    if (reader != null) { reader.Close(); reader.Dispose(); } }  return resultstr; }internal static class ObjectExtend {  public static object GetPropertyValue(this object obj, PropertyInfo property) { Type type = typeof(T); PropertyInfo propertyInfo = type.GetProperty(property.Name);    if (propertyInfo != null) {      return propertyInfo.GetMethod.Invoke(obj, null); }    return null; }  public static object GetDefaultValue(this PropertyInfo property) {    return property.PropertyType.IsValueType ? Activator.CreateInstance(property.PropertyType) : null; } }

以上就是MySQL通过实例化对象参数查询实例讲解的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 数据库