Maison développement back-end Tutoriel C#.Net Explication détaillée de l'utilisation de l'écriture de la classe SqlHelper en C#

Explication détaillée de l'utilisation de l'écriture de la classe SqlHelper en C#

Sep 18, 2017 am 11:25 AM
.net

Cet article présente principalement l'utilisation de C# pour écrire la classe SqlHelper. L'éditeur pense que c'est plutôt bien, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un oeil

Week-end ennuyeux, incapable d'étudier et de coder. Je voulais trouver quelque chose à faire mais je ne savais pas quoi faire. J'ai soudain découvert que j'avais presque oublié le SqlHelper que j'avais appris. Puis le corps du tigre trembla et il se demanda comment avait-il pu tomber si bas. Il alluma immédiatement l'ordinateur et toucha le clavier avec les deux mains. J'ai écrit cet article pour faire le bilan du processus d'apprentissage et pour partager les connaissances (d'ailleurs pour passer le temps -^.^-).

Le texte commence ci-dessous

Ici, nous prenons le programme console comme exemple. Nous devons d'abord configurer la chaîne de connexion. Nous devons ajouter les nœuds suivants au fichier app.config :


<connectionStrings>
   <add name="Sql" connectionString="server=数据库地址;uid=用户名;pwd=密码;database=数据库名"/>
  </connectionStrings>
Copier après la connexion

1. créez un nom pour la classe SqlHepler, puis créez une méthode pour obtenir la chaîne de connexion configurée dans le fichier app.config.


public static string GetSqlConnectionString()
 {
   return ConfigurationManager.
     ConnectionStrings["Sql"].ConnectionString;
 }
Copier après la connexion

2. Encapsulons la première méthode SqlHepler, encapsulons un SQL exécuté et renvoyons le nombre de lignes affectées.


 public static int ExecuteNonQuery(string sqlText,params SqlParameter[] parameters)
{
   using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))  
   {
     using (SqlCommand cmd=conn.CreateCommand())
     {
       conn.Open();  //打开数据库
       cmd.CommandText = sqlText;  //对CommandText进行赋值
       cmd.Parameters.AddRange(parameters);  //对数据库使用参数进行赋值
       return cmd.ExecuteNonQuery();
     }
   }
}
Copier après la connexion

Description du paramètre : sqlText : le script SQL qui doit être exécuté, paramètres : l'ensemble de paramètres requis

Cette méthode est principalement utilisé Effectue des opérations de suppression, de mise à jour et d'insertion et renvoie le nombre de lignes affectées.

3. Continuez à encapsuler une opération de requête et renvoyez la valeur de la première ligne et de la première colonne dans le résultat de la requête


public static object ExecuteScalar(string sqlText, params SqlParameter[] parameters)
 {
  using (SqlConnection conn=new SqlConnection(GetSqlConnectionString()))
  {
   using (SqlCommand cmd=conn.CreateCommand())
   {
     conn.Open();
     cmd.CommandText = sqlText;
     cmd.Parameters.AddRange(parameters);
     return cmd.ExecuteScalar();
   }
  }
}
Copier après la connexion

Description du paramètre :Comme ci-dessus.

La valeur de retour de cette méthode est object, nous pouvons donc utiliser cette classe lorsque nous ne savons pas quel type de données nous interrogeons.

4. Encapsulez une méthode de requête commune et renvoyez un DataTable


public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters) 
 {
  using (SqlDataAdapter adapter =new SqlDataAdapter(sqlText,GetSqlConnectionString()))
  {
    DataTable dt = new DataTable();
    adapter.SelectCommand.Parameters.AddRange(parameters);
    adapter.Fill(dt);
    return dt;
   }
}
Copier après la connexion

Description du paramètre : comme ci-dessus.

Cette méthode est principalement utilisée pour certaines données de requête dt sera remplie avec les données interrogées puis renverra les données.

5. Enfin, écrivez et encapsulez une méthode de requête, qui renvoie un type SqlDataReader


public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters)
{
   //SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态
   SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要释放连接,因为后面还需要连接打开状态
   SqlCommand cmd = conn.CreateCommand();
   conn.Open();
   cmd.CommandText = sqlText;
   cmd.Parameters.AddRange(parameters);
   //CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉
   return cmd.ExecuteReader(CommandBehavior.CloseConnection); 
}
Copier après la connexion

Description du paramètre : toujours comme ci-dessus.

L'objet de type SqlDataReader renvoyé par cette méthode doit toujours utiliser l'objet SqlConnection, il ne peut donc pas être libéré. Ce type de données est lu ligne par ligne. Reading utilise la méthode Read() de cette classe. La valeur de retour est bool pour déterminer si les données sont vides (c'est-à-dire si la dernière ligne a été lue). Cette méthode lira automatiquement l'enregistrement suivant.

En tant que débutant, cette fois, je viens de donner une brève introduction et de revoir la classe SqlHepler.

Joindre tous les codes :


using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace UserInfoMgr
{
  class SqlHelper
  {
    /// <summary>
    /// 获取连接字符串
    /// </summary>
    /// <returns>连接字符串</returns>
    public static string GetSqlConnectionString()
    {
      return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
    }

    /// <summary>
    /// 封装一个执行的sql 返回受影响的行数
    /// </summary>
    /// <param name="sqlText">执行的sql脚本</param>
    /// <param name="parameters">参数集合</param>
    /// <returns>受影响的行数</returns>
    public static int ExecuteNonQuery(string sqlText,params SqlParameter[] parameters)
    {
      using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))
      {
        using (SqlCommand cmd=conn.CreateCommand())
        {
          conn.Open();
          cmd.CommandText = sqlText;
          cmd.Parameters.AddRange(parameters);
          return cmd.ExecuteNonQuery();
        }
      }
    }

    /// <summary>
    /// 执行sql,返回查询结果中的第一行第一列的值
    /// </summary>
    /// <param name="sqlText">执行的sql脚本</param>
    /// <param name="parameters">参数集合</param>
    /// <returns>查询结果中的第一行第一列的值</returns>
    public static object ExecuteScalar(string sqlText, params SqlParameter[] parameters)
    {
      using (SqlConnection conn=new SqlConnection(GetSqlConnectionString()))
      {
        using (SqlCommand cmd=conn.CreateCommand())
        {
          conn.Open();
          cmd.CommandText = sqlText;
          cmd.Parameters.AddRange(parameters);
          return cmd.ExecuteScalar();
        }
      }
    }

    /// <summary>
    /// 执行sql 返回一个DataTable
    /// </summary>
    /// <param name="sqlText">执行的sql脚本</param>
    /// <param name="parameters">参数集合</param>
    /// <returns>返回一个DataTable</returns>
    public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters) 
    {
      using (SqlDataAdapter adapter =new SqlDataAdapter(sqlText,GetSqlConnectionString()))
      {
        DataTable dt = new DataTable();
        adapter.SelectCommand.Parameters.AddRange(parameters);
        adapter.Fill(dt);
        return dt;
      }
    }

    /// <summary>
    /// 执行sql脚本
    /// </summary>
    /// <param name="sqlText">执行的sql脚本</param>
    /// <param name="parameters">参数集合</param>
    /// <returns>返回一个SqlDataReader</returns>
    public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters)
    {
      //SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态
      SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要释放连接,因为后面还需要连接打开状态
      SqlCommand cmd = conn.CreateCommand();
      conn.Open();
      cmd.CommandText = sqlText;
      cmd.Parameters.AddRange(parameters);
      //CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉
      return cmd.ExecuteReader(CommandBehavior.CloseConnection); 
    }
  }
}
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les perspectives d'emploi du C# ? Quelles sont les perspectives d'emploi du C# ? Oct 19, 2023 am 11:02 AM

Que vous soyez débutant ou professionnel expérimenté, la maîtrise du C# ouvrira la voie à votre carrière.

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM May 06, 2024 pm 04:43 PM

Le développement des technologies d’intelligence artificielle (IA) bat son plein aujourd’hui et elles ont montré un grand potentiel et une grande influence dans divers domaines. Aujourd'hui, Dayao partagera avec vous 4 cadres de projets liés au modèle d'IA open source .NET LLM, dans l'espoir de vous fournir une référence. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel est un kit de développement logiciel (SDK) open source conçu pour intégrer de grands modèles de langage (LLM) tels qu'OpenAI, Azure

Technologie d'optimisation des performances .NET pour les développeurs Technologie d'optimisation des performances .NET pour les développeurs Sep 12, 2023 am 10:43 AM

Si vous êtes un développeur .NET, vous devez être conscient de l'importance d'optimiser les fonctionnalités et les performances pour fournir des logiciels de haute qualité. En utilisant de manière experte les ressources fournies et en réduisant les temps de chargement des sites Web, vous créez non seulement une expérience agréable pour vos utilisateurs, mais vous réduisez également les coûts d'infrastructure.

Différences de performances entre le framework Java et le framework .NET Différences de performances entre le framework Java et le framework .NET Jun 03, 2024 am 09:19 AM

En termes de traitement des requêtes à haute concurrence, .NETASP.NETCoreWebAPI fonctionne mieux que JavaSpringMVC. Les raisons incluent : la compilation précoce AOT, qui réduit le temps de démarrage, une gestion plus raffinée de la mémoire, où les développeurs sont responsables de l'allocation et de la libération de la mémoire des objets.

C # .NET des questions et réponses d'entrevue: améliorez votre expertise C # .NET des questions et réponses d'entrevue: améliorez votre expertise Apr 07, 2025 am 12:01 AM

C # .NET Les questions et réponses d'entrevue comprennent les connaissances de base, les concepts de base et l'utilisation avancée. 1) Connaissances de base: C # est un langage orienté objet développé par Microsoft et est principalement utilisé dans le framework .NET. 2) Concepts de base: la délégation et les événements permettent des méthodes de liaison dynamiques, et LINQ fournit des fonctions de requête puissantes. 3) Utilisation avancée: la programmation asynchrone améliore la réactivité et les arbres d'expression sont utilisés pour la construction de code dynamique.

Tutoriel avancé C # .NET: Ace votre prochain entretien de développeur senior Tutoriel avancé C # .NET: Ace votre prochain entretien de développeur senior Apr 08, 2025 am 12:06 AM

L'entrevue avec C # Developer Senior Developer nécessite de maîtriser les connaissances de base telles que la programmation asynchrone, la LINQ et les principes de travail internes des frameworks .NET. 1. La programmation asynchrone simplifie les opérations par asynchronisation et attend pour améliorer la réactivité de l'application. 2.Linq exploite des données dans le style SQL et fait attention aux performances. 3. La CLR du cadre net gère la mémoire et la collecte des ordures doit être utilisée avec prudence.

C # .NET: Explorer les concepts de base et les principes fondamentaux de la programmation C # .NET: Explorer les concepts de base et les principes fondamentaux de la programmation Apr 10, 2025 am 09:32 AM

C # est un langage de programmation moderne et orienté objet développé par Microsoft et dans le cadre du .NET Framework. 1.C # prend en charge la programmation orientée objet (POO), y compris l'encapsulation, l'héritage et le polymorphisme. 2. La programmation asynchrone en C # est implémentée via Async et attend des mots clés pour améliorer la réactivité des applications. 3. Utilisez LINQ pour traiter les collections de données concisement. 4. Les erreurs courantes incluent les exceptions de référence NULL et les exceptions indexes hors gamme. Les compétences de débogage comprennent l'utilisation d'un débogueur et une gestion des exceptions. 5. L'optimisation des performances comprend l'utilisation de StringBuilder et d'éviter l'emballage et le déballage inutiles.

C # code dans .NET: Explorer le processus de programmation C # code dans .NET: Explorer le processus de programmation Apr 12, 2025 am 12:02 AM

Le processus de programmation de C # dans .NET comprend les étapes suivantes: 1) l'écriture de code C #, 2) la compilation dans un langage intermédiaire (IL) et 3) l'exécution par .NET Runtime (CLR). Les avantages de C # dans .NET sont sa syntaxe moderne, son système de type puissant et son intégration serrée avec le Framework .NET, adapté à divers scénarios de développement des applications de bureau aux services Web.

See all articles