香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2020-11-03 13:37 作者:admin610456


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

public static string QueryByEntity<T>(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<T>(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<T> tList = new List<T>();    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<T>(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;  }}

通过实例化参数,对属性赋值,将对象作为参数传入,反射获取对象名称,列名,列值。要求对象名与表名一致,属性与列名一致,感谢大家对脚本之家的支持。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)