This article will introduce how to query data in MySQL by instantiating object parameters. (Source code) has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. 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("Query database failed, {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; } } By instantiating parameters, assigning values to properties, passing objects as parameters, and obtaining object names, column names, and column values through reflection. The object name is required to be consistent with the table name, and the attribute is required to be consistent with the column name. Thank you for your support of 123WORDPRESS.COM. You may also be interested in:
|
<<: WeChat applet development practical skills: data transmission and storage
>>: How to install Graphviz and get started tutorial under Windows
Table of contents 1. df command 2. du command 3. ...
This article uses examples to illustrate the prin...
1. Set CORS response header to achieve cross-doma...
Download image docker pull openjdk Creating a Dat...
Unicode is a character encoding scheme developed ...
Linux change hostname command 1. If you only need...
<frameset></frameset> is familiar to e...
Idea: Just sort randomly first and then group. 1....
This article mainly introduces how to use the Rea...
I don't know if you have noticed when making a...
Table of contents background Understanding compos...
Table of contents 1. Determine the entity type be...
CSS image splicing technology 1. Image stitching ...
In a cluster with master-slave replication mode, ...
I rewrote my personal website recently. I bought ...