Maison  >  Article  >  développement back-end  >  Qu'est-ce que la classe sqlhelper ?

Qu'est-ce que la classe sqlhelper ?

(*-*)浩
(*-*)浩original
2019-05-10 16:05:315803parcourir

La classe sqlhelper fait référence à un composant d'opération de base de données basé sur ".NET Framework", qui contient des méthodes d'opération de base de données ; SqlHelper est utilisé pour simplifier votre écriture répétée de ces connexions de base de données SqlCommand ou SqlDataReader, etc.

Qu'est-ce que la classe sqlhelper ?

SqlHelper est un composant d'exploitation de base de données basé sur .NET Framework. Le composant contient des méthodes de fonctionnement de base de données. SqlHelper est utilisé pour simplifier votre écriture répétitive de connexions à la base de données (SqlConnection), SqlCommand, SqlDataReader, etc. Une fois SqlHelper encapsulé, il vous suffit généralement de transmettre certains paramètres à la méthode, tels que la chaîne de connexion à la base de données, les paramètres SQL, etc., puis vous pouvez accéder à la base de données, ce qui est très pratique.

Cours recommandé : Tutoriel C#.

Le fichier SQLHelper.cs contient deux classes, à savoir SqlHelper et SqlHelperParameterCache.

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

Les deux classes sont modifiées avec le modificateur scellé devant, indiquant qu'il s'agit d'une classe scellée et qu'elle ne peut pas être utilisée comme classe de base et ne peut pas être héritée par d'autres classes.

La classe SqlHelper fournit un ensemble de méthodes statiques qui peuvent être utilisées pour émettre de nombreux types différents de commandes vers une base de données SQL Server.

La classe SqlHelperParameterCache fournit une fonction de mise en cache des paramètres de commande, qui peut être utilisée pour améliorer les performances. Cette classe est utilisée en interne par de nombreuses méthodes Execute (en particulier les méthodes remplacées qui exécutent simplement des procédures stockées). Les clients d'accès aux données peuvent également l'utiliser directement pour mettre en cache des ensembles de paramètres spécifiques pour des commandes spécifiques.

Cette fois, nous mettons SqlHelperParameterCache de côté et analysons la classe SqlHelper.

Méthodes

SqlHelper

Il existe quatre méthodes privées, et la méthode AssignParameterValues ​​​​a une surcharge :

AttachParameters : Ajouter un tableau de paramètres au SqlCommand spécifié

AssignParameterValues : attribuer des valeurs au tableau SqlParameters (paramètres)

PrepareCommand : utilisé pour initialiser les propriétés du SqlCommand (commande) (telles que la connexion, environnement transactionnel, etc.).

Il existe treize méthodes publiques : chaque méthode d'interrogation de la base de données utilise un grand nombre de surcharges, et chaque méthode utilise environ huit surcharges.

ExecuteNonQuery

Cette méthode est utilisée pour exécuter une commande qui ne renvoie aucune ligne ou valeur. Ces commandes sont généralement utilisées pour effectuer des mises à jour de bases de données, mais peuvent également être utilisées pour renvoyer les paramètres de sortie d'une procédure stockée.

ExecuteDataset

Cette méthode renvoie un objet DataSet qui contient l'ensemble de résultats renvoyé par une certaine commande.

ExecuteReader

Cette méthode est utilisée pour renvoyer un objet SqlDataReader, qui contient le jeu de résultats renvoyé par une certaine commande.

ExecuteScalar

Cette méthode renvoie une valeur. Cette valeur est toujours la première colonne de la première ligne renvoyée par cette commande.

ExecuteXmlReader

Cette méthode renvoie le fragment XML de la requête FOR XML.

FillDataset

Cette méthode remplit les données dans le DataSet.

UpdateDataset

Cette méthode est utilisée pour exécuter des commandes pour ajouter, supprimer et modifier DataSet.

CreateCommand

Cette méthode est utilisée pour créer une SqlCommand.

Analyse

Prenons la méthode ExecuteNonQuery() comme exemple pour analyser :

Quest-ce que la classe sqlhelper ?

Ce que nous voyons ci-dessus est ExecuteNonQuery() De les neuf méthodes surchargées, les trois premières sont destinées à la préparation des requêtes, les trois du milieu sont destinées à l'exécution des requêtes et les trois dernières sont destinées aux requêtes de transactions SQL. Pour le décomposer davantage, 2-1 exécute une instruction SQL sans paramètres, tandis que 2-2 exécute une instruction SQL contenant un tableau de paramètres (le tableau de paramètres peut être vide) et 2-3 exécute une procédure stockée sans valeur de retour. . En fait, les surcharges 1-1 et 1-3 servent à faciliter les instructions SQL sans paramètres, tandis que les surcharges 1-3 et 2-3 servent simplement à faciliter l'appel de procédures stockées. Leur essence est toujours la même que celle de 1-2 et. 2-2. Voici quelques utilisations simples des méthodes surchargées.

Ci-dessous, nous utiliserons ExecuteNonQuery pour exécuter des instructions SQL avec des paramètres. Vous pouvez utiliser F11 pour afficher le processus d'exécution instruction par instruction, ce qui nous aidera à comprendre l'utilisation de la classe SQLHelper.

#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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn