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
Inhaltsverzeichnis 1. Einleitung 2. Ideen Zwei Mö...
Wenn Sie wissen möchten, wie Sie diese Tabelle mi...
1 Herunterladen Die Adresse lautet: https://dev.m...
JBoss verwendet Tomcat als Webcontainer. Die Konf...
Ich habe das Tutorial auf W3school durchgearbeitet...
Die Verwendung von Ajax zum Implementieren der For...
Vorwort Samba ist eine kostenlose Software, die d...
Details zur Klassifizierung des HTML-Tags von Blo...
Vorwort Wenn die Abfrageinformationen aus mehrere...
Lesetipp: MySQL 8.0.19 unterstützt Kontosperrfunk...
Beginnen Sie vorsichtig mit der Reinigung! Auflis...
Erstellen eines zweidimensionalen Arrays in Js: Z...
Inhaltsverzeichnis Die dynamischen Partikeleffekt...
In diesem Artikel wird der spezifische Code von j...
zabbix_agent-Bereitstellung: Empfehlung: zabbix_a...