千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家带来的内容是关于MySQL如何通过实例化对象参数查询数据 ?(源代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。public static string Query
千家信息网最后更新 2026年11月02日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;  }}

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

对象 参数 实例 查询 一致 属性 数据 参考 价值 内容 名称 数据库 文章 朋友 源代码 反射 帮助 支持 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 上海挚品互联网科技有限公司 上海卓越科技互联网 互联网金融与金融科技 互联网科技公司发展 互联网科技公司电话 上海万想互联网科技 老年人脱离互联网科技的作文 承德科技产业互联网发展 彤创互联网科技有限公司 高科技互联网发展前景如何 众安科技工业互联网合作 怎样加入科技互联网 伍佰万互联网科技怎么赚钱 智帮互联网科技公司最近动向 唐山双旺合互联网科技产业园 互联网的科技体现在哪里 互联网科技对化妆品行业 承德科技产业互联网平台 互联网 科技节活动 微视频大赛 工业互联网科技新基建 广州慧亚互联网科技怎么样 随着互联网科技发展 互联网校园科技培训 湖北码尼互联网科技有限公司电话 速维有品互联网信息科技(苏州)有限公司 城市宝互联网科技有限公司 易企秀互联网科技是做什么的 互联网科技的前景 互联网科技创业有什么好项目
0