Dieser Artikel stellt vor, wie Sie durch Instanziieren von Objektparametern Daten in MySQL abfragen. (Quellcode) hat einen gewissen Referenzwert. Freunde in Not können darauf zurückgreifen. Ich hoffe, es wird Ihnen hilfreich sein. öffentliche statische Zeichenfolge QueryByEntity<T>(T t), wobei T : neu() { string resultstr = string.Leer; MySqlDataReader reader = null; versuchen { Typ Typ = Typ von (T); PropertyInfo[] Eigenschaften = Typ.GetProperties(); Zeichenfolge Auswahl = Zeichenfolge.Format("Select * from {0} {1}", Typ.Name, "{0}"); Zeichenfolge wobei = Zeichenfolge.Empty; foreach (PropertyInfo-Eigenschaft in Eigenschaften) { var Wert = t.GetPropertyValue<T>(Eigenschaft); wenn (Wert != null && !Wert.Equals(Eigenschaft.GetDefaultValue())) { wenn (string.IsNullOrEmpty(wobei)) { wobei = Zeichenfolge.Format(" wobei {0}='{1}' ", Eigenschaftsname, Wert); } anders { wobei = Zeichenfolge.Format("{0} und {1} = '{2}'", wobei, Eigenschaftsname, Wert); } } } Auswahl = Zeichenfolge.Format(Auswahl, wo); MySqlConnection-Verbindung = OpenConnection(); wenn (Verbindung == null) returniere resultstr; MySqlCommand _sqlCom = neuer MySqlCommand(Auswählen, Verbindung); Leser = _sqlCom.ExecuteReader(); Liste<T> tList = neue Liste<T>(); während (Reader.Read()) { T t1 = new T(); foreach (PropertyInfo-Eigenschaft in Eigenschaften) { wenn (!string.IsNullOrEmpty(reader[Eigenschaft.Name].ToString())) { Eigenschaft.SetMethod.Invoke(t1, neues Objekt[] { Leser[Eigenschaft.Name] }); } } tList.Add(t1); } resultstr = JsonConvert.SerializeObject(tList); } catch (Ausnahme ex) { Logging.Error(string.Format("Datenbankabfrage fehlgeschlagen, {0}", ex.Message)); } Endlich { wenn (Leser != null) { Leser.Schließen(); Leser.Entsorgen(); } } Ergebnisstr zurückgeben; }interne statische Klasse ObjectExtend { öffentliches statisches Objekt GetPropertyValue<T>(dieses Objekt obj, PropertyInfo-Eigenschaft) { Typ Typ = Typ von (T); PropertyInfo propertyInfo = Typ.GetProperty(property.Name); wenn (propertyInfo != null) { return propertyInfo.GetMethod.Invoke(obj, null); } gibt null zurück; } öffentliches statisches Objekt GetDefaultValue(diese PropertyInfo-Eigenschaft) Activator.CreateInstance(Eigenschaft.Eigenschaftstyp) : null; } } Durch Instanziieren von Parametern, Zuweisen von Werten zu Eigenschaften, Übergeben von Objekten als Parameter und Abrufen von Objektnamen, Spaltennamen und Spaltenwerten durch Reflektion. Der Objektname muss mit dem Tabellennamen übereinstimmen und das Attribut muss mit dem Spaltennamen übereinstimmen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Praktische Fähigkeiten zur Entwicklung von WeChat-Applets: Datenübertragung und -speicherung
>>: So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows
Bei der Designarbeit höre ich oft, dass an der Übe...
Als nächstes werde ich Java+Tomcat auf Centos7 in...
Ich habe gelernt, wie man https bekommt. Kürzlich...
Verwenden Sie Canvas, um Grafiken und Text mit Sc...
Vorwort Ich bin kürzlich bei der Arbeit auf diese...
Wenn ein Projekt eine gewisse Komplexität erreich...
Verwenden von UNION Die meisten SQL-Abfragen best...
Basierend auf täglichen Entwicklungserfahrungen u...
Mac verwendet Shell (Terminal) SSH, um eine Verbi...
Im Gegensatz zu anderen Designarten verändert sich...
Lösung Funktion mergeImgs(Liste) { const imgDom =...
Löschen Sie zuerst MySQL: sudo apt-get remove mys...
1. Problembeschreibung Aus bestimmten Gründen ist...
Inhaltsverzeichnis 2. Detaillierte Erklärung 2.1....
Inhaltsverzeichnis 1. Docker installieren 2. Erst...