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 Ergebnisse erzielen Vollständi...
Inhaltsverzeichnis Vorwort Typinferenz Einengung ...
Vorwort Aus Sicherheitsgründen kann sich der Root...
Code <div Klasse="Test"> <div&...
1. Einleitung Ob die Erstellungszeit einer Datei ...
Vorwort: Manchmal wird die mit MySQL verbundene S...
Inhaltsverzeichnis Rekursive Vue-Komponente Drag-...
1. CSS-Schreibformat 1. Inline-Stile Sie können C...
Trident-Kern: IE, MaxThon, TT, The World, 360, So...
In diesem Artikel wird der spezifische JavaScript...
Ich habe immer das Gefühl, dass Übersetzen und Üb...
Inhaltsverzeichnis Nachfragehintergrund Warum Ngi...
Verzeichnisstruktur . │ .env │ docker-compose.yml...
Aus diesem Grund haben wir eine Auswahl von 30 Kom...
1. Übersicht Ich habe viel online gesucht und fes...