Erläuterung des MySQL-Abfragebeispiels anhand instanziierter Objektparameter

Erläuterung des MySQL-Abfragebeispiels anhand instanziierter Objektparameter

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:
  • Eine kurze Diskussion über das Problem der Parameterübergabe bei der Verwendung in pymysql-Abfrageanweisungen
  • So verwenden Sie den Limit-Parameter zur Optimierung von MySQL-Abfragen
  • Zusammenfassung der speicherbezogenen Parameter von MySQL 8.0
  • Python MySQL in der Parametrisierungsbeschreibung
  • Python MySQLdb-Parameterübergabemethode beim Ausführen von SQL-Anweisungen
  • Python MySQL Datums-/Uhrzeitformatierung als Parameteroperationen
  • Detaillierte Erläuterung der MySQL-Konfigurationsparameteroptimierung
  • Umfassende Referenz zur MySQL-Leistungsoptimierungsmethode, von der CPU über die Dateisystemauswahl bis hin zur mysql.cnf-Parameteroptimierung
  • Detaillierte Erläuterung der Parameteroptimierung table_open_cache und sinnvolle Konfiguration unter MySQL 5.6
  • MySQL-Parameterbezogene Konzepte und Abfrageänderungsmethoden

<<:  Praktische Fähigkeiten zur Entwicklung von WeChat-Applets: Datenübertragung und -speicherung

>>:  So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Artikel empfehlen

Vue implementiert Upload-Komponente

Inhaltsverzeichnis 1. Einleitung 2. Ideen Zwei Mö...

Ein einfaches Beispiel zum Erstellen einer dünnen Linientabelle in HTML

Wenn Sie wissen möchten, wie Sie diese Tabelle mi...

Connector-Konfiguration in Tomcat

JBoss verwendet Tomcat als Webcontainer. Die Konf...

Führen Sie die Schritte aus, um mit Samba Ordner in CentOS 7 freizugeben

Vorwort Samba ist eine kostenlose Software, die d...

Welche Arten von MySQL-Verbindungsabfragen kennen Sie?

Vorwort Wenn die Abfrageinformationen aus mehrere...

Die perfekte Lösung, um das Passwort in mysql8.0.19 zu vergessen

Lesetipp: MySQL 8.0.19 unterstützt Kontosperrfunk...

Docker-Bereinigungsumgebungsvorgang

Beginnen Sie vorsichtig mit der Reinigung! Auflis...

Tipps zum Erstellen zweidimensionaler Arrays in JavaScript

Erstellen eines zweidimensionalen Arrays in Js: Z...

js zur Implementierung einer Interferenz mit Verifizierungscodes (statisch)

In diesem Artikel wird der spezifische Code von j...

So stellen Sie zabbix_agent in Docker bereit

zabbix_agent-Bereitstellung: Empfehlung: zabbix_a...