Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist die sqlhelper-Klasse?

Was ist die sqlhelper-Klasse?

(*-*)浩
(*-*)浩Original
2019-05-10 16:05:315866Durchsuche

Die Klasse sqlhelper bezieht sich auf eine auf „.NET Framework“ basierende Datenbankbetriebskomponente, die Datenbankbetriebsmethoden enthält. SqlHelper wird verwendet, um das wiederholte Schreiben dieser Datenbankverbindungen SqlCommand oder SqlDataReader usw. zu vereinfachen.

Was ist die sqlhelper-Klasse?

SqlHelper ist eine Datenbankbetriebskomponente basierend auf .NET Framework. Die Komponente enthält Datenbankbetriebsmethoden. SqlHelper wird verwendet, um das wiederholte Schreiben von Datenbankverbindungen (SqlConnection), SqlCommand, SqlDataReader usw. zu vereinfachen. Nachdem SqlHelper gekapselt ist, müssen Sie normalerweise nur einige Parameter an die Methode übergeben, z. B. eine Datenbankverbindungszeichenfolge, SQL-Parameter usw., und können dann auf die Datenbank zugreifen, was sehr praktisch ist.

Empfohlener Kurs: C#-Tutorial.

Die Datei SQLHelper.cs enthält zwei Klassen, nämlich SqlHelper und SqlHelperParameterCache.

//
public sealed class SqlHelper{}
public sealed class SqlHelperParameterCache{}

Beide Klassen werden mit dem Modifikator „sealed“ am Anfang modifiziert, was darauf hinweist, dass es sich um eine versiegelte Klasse handelt und nicht als Basisklasse verwendet und nicht von anderen Klassen geerbt werden kann.

Die SqlHelper-Klasse stellt eine Reihe statischer Methoden bereit, mit denen viele verschiedene Arten von Befehlen an eine SQL Server-Datenbank ausgegeben werden können.

Die SqlHelperParameterCache-Klasse bietet eine Funktion zum Zwischenspeichern von Befehlsparametern, die zur Verbesserung der Leistung verwendet werden kann. Diese Klasse wird intern von vielen Execute-Methoden verwendet (insbesondere von den überschriebenen Methoden, die nur gespeicherte Prozeduren ausführen). Datenzugriffsclients können es auch direkt verwenden, um bestimmte Parametersätze für bestimmte Befehle zwischenzuspeichern.

Dieses Mal legen wir SqlHelperParameterCache beiseite und analysieren die SqlHelper-Klasse.

Methoden

SqlHelper

Es gibt vier private Methoden, und die AssignParameterValues-Methode hat eine Überladung:

AttachParameters: Parameter-Array hinzufügen Zum angegebenen SqlCommand

AssignParameterValues: Weisen Sie dem SqlParameters-Array (Parameter) Werte zu

PrepareCommand: Wird zum Initialisieren der Eigenschaften des SqlCommand (Befehls) verwendet (z. B. Verbindung, Transaktionsumgebung usw.).

Es gibt dreizehn öffentliche Methoden: Jede Methode zum Abfragen der Datenbank verwendet eine große Anzahl von Überladungen, und jede Methode verwendet etwa acht Überladungen.

ExecuteNonQuery

Diese Methode wird verwendet, um einen Befehl auszuführen, der keine Zeilen oder Werte zurückgibt. Diese Befehle werden normalerweise zum Durchführen von Datenbankaktualisierungen verwendet, können aber auch zum Zurückgeben von Ausgabeparametern aus einer gespeicherten Prozedur verwendet werden.

ExecuteDataset

Diese Methode gibt ein DataSet-Objekt zurück, das die von einem bestimmten Befehl zurückgegebene Ergebnismenge enthält.

ExecuteReader

Diese Methode wird verwendet, um ein SqlDataReader-Objekt zurückzugeben, das die von einem bestimmten Befehl zurückgegebene Ergebnismenge enthält.

ExecuteScalar

Diese Methode gibt einen Wert zurück. Dieser Wert ist immer die erste Spalte der ersten Zeile, die von diesem Befehl zurückgegeben wird.

ExecuteXmlReader

Diese Methode gibt das XML-Fragment der FOR XML-Abfrage zurück.

FillDataset

Diese Methode füllt Daten in das DataSet.

UpdateDataset

Diese Methode wird verwendet, um Befehle zum Hinzufügen, Löschen und Ändern von DataSet auszuführen.

CreateCommand

Diese Methode wird zum Erstellen eines SqlCommand verwendet.

Analyse

Nehmen wir die ExecuteNonQuery()-Methode als Beispiel zur Analyse:

Was ist die sqlhelper-Klasse?

Was wir oben sehen, ist ExecuteNonQuery() Von Bei den neun überladenen Methoden dienen die ersten drei zum Vorbereiten von Abfragen, die mittleren drei zum Ausführen von Abfragen und die letzten drei für SQL-Transaktionsabfragen. Um es weiter aufzuschlüsseln: 2-1 führt eine SQL-Anweisung ohne Parameter aus, während 2-2 eine SQL-Anweisung ausführt, die ein Parameterarray enthält (das Parameterarray kann leer sein), und 2-3 eine gespeicherte Prozedur ohne Rückgabewert ausführt. . Tatsächlich dienen die Überladungen 1-1 und 1-3 dazu, Parameterlose SQL-Anweisungen zu ermöglichen, während die Überladungen 1-3 und 2-3 nur dazu dienen, den Aufruf gespeicherter Prozeduren zu erleichtern. Ihr Wesen ist immer noch dasselbe wie 1-2 und 2-2. Das Gleiche. Hier sind einige einfache Verwendungsmöglichkeiten für überladene Methoden.

Im Folgenden verwenden wir ExecuteNonQuery, um SQL-Anweisungen mit Parametern auszuführen. Mit F11 können Sie den Ausführungsprozess Anweisung für Anweisung anzeigen, was uns hilft, die Verwendung der SQLHelper-Klasse zu verstehen.

#region RegisterUser 注册用户
        /// <summary>
        /// 注册用户
        /// </summary>
        /// <param>userinfo实体
        /// <returns>注册成功返回True,失败返回False</returns>
        public bool RegisterUser(JFEntity.UserInfo userinfo)
        {
            string sql = @"INSERT INTO T_User VALUES(@userID,@userName,@userSex,@userPassword,@userLevel)";
            SqlParameter[] sqlparamter = new SqlParameter[] 
            {
                new SqlParameter("@userID", SqlDbType.Int),
                new SqlParameter("@userName", SqlDbType.Char,30),
                new SqlParameter("@userSex", SqlDbType.Char,6),
                new SqlParameter("@userPassword", SqlDbType.Char,16),
                new SqlParameter("@userLevel", SqlDbType.Char,8),
            };
            sqlparamter[0].Value = userinfo.userID;
            sqlparamter[1].Value = userinfo.userName;
            sqlparamter[2].Value = userinfo.userSex;
            sqlparamter[3].Value = userinfo.userPassword;
            sqlparamter[4].Value = userinfo.userLevel;
            int result = SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, sql, sqlparamter);
            if (result != 0)
            {
                return true;//注册成功
            }
            else
            {
                return false;//注册失败
            }
        }
        #endregion

Das obige ist der detaillierte Inhalt vonWas ist die sqlhelper-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn