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
vue+element UI encapsulates a public function to ...
This article example shares the specific code of ...
Ubuntu 18.04 installs mysql 5.7 for your referenc...
There are many form elements. Here is a brief sum...
What is MIME TYPE? 1. First, we need to understand...
Preface Previously, static IPs assigned using pip...
Table of contents 1. Create a table 1.1. Basic sy...
For MySQL 5.5, if the character set is not set, t...
1. Problem Forgot password for mysql5.7 under lin...
Table of contents 1. Component Registration 2. Us...
Table of contents Preface Hello World image Set b...
Table of contents 1. Write in front 2. Overlay to...
Table of contents Preface 1. With vue-cli 1. Defi...
Introduction Describes the use cases and solution...
First of all, the formation of web page style main...