本篇文章给大家带来的内容是关于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;  }}

更多相关文章

  1. 《Android和PHP最佳实践》官方站
  2. 类和 Json对象
  3. android用户界面之按钮(Button)教程实例汇
  4. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  5. Android中文API(144) —— JsonWriter
  6. Android之Handler用法总结
  7. android通过ksoap2对webservice的解析
  8. Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
  9. Android(安卓)View的介绍和使用

随机推荐

  1. 【Android】Android取消EditText自动获取
  2. Android NDK学习记录(一)
  3. android应用程序键盘事件机制
  4. 报错You need to use a Theme.AppCompat
  5. 【android初级】之android布局属性详解
  6. Android Layout属性详解
  7. 布局技巧和列表控件
  8. Android ScrollView滚动条
  9. android sdk的快速安装法
  10. Android基本控件TextView