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
In MySQL 8.0.18 wurde eine neue Hash-Join-Funktio...
Dieser Artikel zeichnet das Installations-Grafik-...
Inhaltsverzeichnis Überblick Virtueller Dom Prinz...
Nachdem wir eine Webdienstanwendung (wie etwa Tom...
1. Verwenden Sie den Befehl df, um die gesamte Fe...
Hier nehmen wir den Jenkins-Container als Beispie...
Inhaltsverzeichnis 1. Kurzbeschreibung 2. Schritt...
Beheben Sie das Problem, dass unter Windows 10 ke...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis denken 1. Bild mit dem gierige...
Die Swap-Partition des Linux-Systems, also die Sw...
Ich freue mich, dass einige Blogger meinen Artike...
Implementierungsvorbereitung # Der Dateipfad muss...
Was ist Volumen? „Volume“ bedeutet auf Englisch K...
Phänomen Das System konnte den Linux-Systemkernel...