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
Limit input box to only pure numbers 1、onkeyup = ...
Add table fields alter table table1 add transacto...
This article shares the specific code for JavaScr...
The transaction log records the operations on the...
The first line of a Docker image starts with an i...
This article shares the installation tutorial of ...
This article shares the specific code of js canva...
This article records the specific method of insta...
Prerequisites To run containers on Windows Server...
What are Routing and Routing Table in Linux? The ...
1. Installation 1. Download MySQL Download addres...
Table of contents Dynamically change themes The f...
Table of contents What is multi-environment confi...
I recently added a very simple color scheme (them...
1. Check the synchronization status of A and B da...