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
Summarize This article ends here. I hope it can b...
Table of contents 1. Use the a tag to preview or ...
Table of contents question: 1. Enable remote logi...
Connecting to MySQL Here I use navicat to connect...
Here are some common MySQL commands for you: -- S...
Preface: Due to my work, I am involved in the fie...
Example source code: https://codepen.io/shadeed/p...
Table of contents 1 Use of v-if and v-show 2. Dif...
Table of contents About G2 Chart use Complete cod...
Preface Let me share with you how to make a searc...
This article example shares the specific code of ...
Table of contents Question: When the button is cl...
Preface: In interviews for various technical posi...
The database enables slow query logs Modify the c...
I was playing with CentOS in a VMware virtual mac...