Heim Backend-Entwicklung C#.Net-Tutorial Detaillierte Erläuterung der Verwendung der SqlHelper-Klasse zum Schreiben in C#

Detaillierte Erläuterung der Verwendung der SqlHelper-Klasse zum Schreiben in C#

Sep 18, 2017 am 11:25 AM
.net

In diesem Artikel wird hauptsächlich die Verwendung von C# zum Schreiben der SqlHelper-Klasse vorgestellt. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Herausgeber und werfen wir einen Blick darauf

Langweiliges Wochenende, nicht in der Lage zu lernen und zu programmieren. Ich wollte etwas finden, was ich tun sollte, wusste aber plötzlich, dass ich den SqlHelper, den ich gelernt hatte, fast vergessen hatte. Dann zitterte der Körper des Tigers und er dachte, wie konnte er so tief sinken? Er schaltete sofort den Computer ein und berührte die Tastatur mit beiden Händen. Ich habe diesen Artikel als Rezension während des Lernprozesses und um das Wissen zu teilen (übrigens um die Zeit totzuschlagen -^.^-) geschrieben.

Der Text beginnt unten

Hier nehmen wir das Konsolenprogramm als Beispiel. Zuerst müssen wir die Verbindungszeichenfolge zur Datei app.config hinzufügen:


<connectionStrings>
   <add name="Sql" connectionString="server=数据库地址;uid=用户名;pwd=密码;database=数据库名"/>
  </connectionStrings>
Nach dem Login kopieren

1 Erstellen Sie einen Namen für die SqlHepler-Klasse und erstellen Sie dann eine Methode, um die in der Datei app.config konfigurierte Verbindungszeichenfolge abzurufen.


public static string GetSqlConnectionString()
 {
   return ConfigurationManager.
     ConnectionStrings["Sql"].ConnectionString;
 }
Nach dem Login kopieren

2. Kapseln wir die erste SqlHepler-Methode, kapseln ein ausgeführtes SQL und geben die Anzahl der betroffenen Zeilen zurück.


 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();
     }
   }
}
Nach dem Login kopieren

Parameterbeschreibung: sqlText: das auszuführende SQL-Skript, Parameter: der erforderliche Parametersatz

Diese Methode ist Hauptsächlich verwendet: Führt Lösch-, Aktualisierungs- und Einfügevorgänge aus und gibt die Anzahl der betroffenen Zeilen zurück.

3. Kapseln Sie weiterhin einen Abfragevorgang und geben Sie den Wert der ersten Zeile und der ersten Spalte im Abfrageergebnis zurück


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();
   }
  }
}
Nach dem Login kopieren

Parameterbeschreibung: Wie oben.

Der Rückgabewert dieser Methode ist Objekt, sodass wir diese Klasse verwenden können, wenn wir nicht wissen, welche Art von Daten wir abfragen.

4. Kapseln Sie eine allgemeine Abfragemethode und geben Sie eine Datentabelle zurück


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;
   }
}
Nach dem Login kopieren

Parameterbeschreibung: wie oben.

Diese Methode wird hauptsächlich für einige Abfragedaten verwendet, die mit den abgefragten Daten gefüllt werden und dann die Daten zurückgeben.

5. Schreiben und kapseln Sie abschließend eine Abfragemethode, die einen SqlDataReader-Typ zurückgibt.


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); 
}
Nach dem Login kopieren

Parameterbeschreibung: Immer noch wie oben.

Das von dieser Methode zurückgegebene Objekt vom Typ SqlDataReader muss immer das Objekt SqlConnection verwenden und kann daher nicht freigegeben werden. Diese Art von Daten wird Zeile für Zeile gelesen. Beim Lesen wird die Read()-Methode dieser Klasse verwendet, um festzustellen, ob die Daten leer sind (d. h. ob die letzte Zeile gelesen wurde).

Als Anfänger habe ich dieses Mal nur eine kurze Einführung gegeben und die SqlHepler-Klasse überprüft.

Fügen Sie alle Codes bei:


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); 
    }
  }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der SqlHelper-Klasse zum Schreiben in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie sind die Berufsaussichten von C#? Wie sind die Berufsaussichten von C#? Oct 19, 2023 am 11:02 AM

Ganz gleich, ob Sie Anfänger oder erfahrener Profi sind: Die Beherrschung von C# ebnet den Weg für Ihre Karriere.

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks May 06, 2024 pm 04:43 PM

Die Entwicklung von Technologien der künstlichen Intelligenz (KI) ist heute in vollem Gange und sie haben in verschiedenen Bereichen großes Potenzial und Einfluss gezeigt. Heute wird Dayao Ihnen 4 .NET Open-Source-KI-Modell-LLM-bezogene Projekt-Frameworks vorstellen und hofft, Ihnen einige Referenzen zu geben. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ist ein Open-Source-Softwareentwicklungskit (SDK), das für die Integration großer Sprachmodelle (LLM) wie OpenAI und Azure entwickelt wurde

.NET-Leistungsoptimierungstechnologie für Entwickler .NET-Leistungsoptimierungstechnologie für Entwickler Sep 12, 2023 am 10:43 AM

Wenn Sie ein .NET-Entwickler sind, müssen Sie sich der Bedeutung der Optimierung von Funktionalität und Leistung bei der Bereitstellung hochwertiger Software bewusst sein. Durch den fachgerechten Einsatz der bereitgestellten Ressourcen und die Verkürzung der Ladezeiten der Website schaffen Sie nicht nur ein angenehmes Erlebnis für Ihre Nutzer, sondern senken auch die Infrastrukturkosten.

Leistungsunterschiede zwischen Java-Framework und .NET-Framework Leistungsunterschiede zwischen Java-Framework und .NET-Framework Jun 03, 2024 am 09:19 AM

In Bezug auf die Verarbeitung von Anforderungen mit hoher Parallelität bietet .NETASP.NETCoreWebAPI eine bessere Leistung als JavaSpringMVC. Zu den Gründen gehören: AOT-Frühkompilierung, die die Startzeit verkürzt, wobei Entwickler für die Zuweisung und Freigabe von Objektspeicher verantwortlich sind.

C# .NET -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen auf C# .NET -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen auf Apr 07, 2025 am 12:01 AM

C#.NET -Interviewfragen und Antworten umfassen Grundkenntnisse, Kernkonzepte und erweiterte Nutzung. 1) Grundkenntnisse: C# ist eine von Microsoft entwickelte objektorientierte Sprache und wird hauptsächlich im .NET-Framework verwendet. 2) Kernkonzepte: Delegation und Ereignisse ermöglichen dynamische Bindungsmethoden, und LINQ bietet leistungsstarke Abfragefunktionen. 3) Erweiterte Verwendung: Asynchrone Programmierung verbessert die Reaktionsfähigkeit und Expressionsbäume werden für die dynamische Codekonstruktion verwendet.

Advanced C# .NET Tutorial: Ace Ihr nächstes Senior Developer Interview Advanced C# .NET Tutorial: Ace Ihr nächstes Senior Developer Interview Apr 08, 2025 am 12:06 AM

Das Interview mit C# Senior Developer erfordert das Mastering von Kernwissen wie asynchrones Programmieren, LINQ und interne Arbeitsprinzipien von .NET -Frameworks. 1. Asynchrones Programmieren vereinfacht die Operationen durch Async und wartet auf die Verbesserung der Anwendungsreaktionsfähigkeit. 2.LinQ betreibt Daten im SQL -Stil und achtet auf die Leistung. 3. Die CLR des Net -Frameworks verwaltet den Speicher, und die Müllsammlung muss mit Vorsicht verwendet werden.

C# .NET: Erforschen von Kernkonzepten und Programmierfundamentaldaten C# .NET: Erforschen von Kernkonzepten und Programmierfundamentaldaten Apr 10, 2025 am 09:32 AM

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

C# Code in .NET: Erforschen des Programmiervorgangs C# Code in .NET: Erforschen des Programmiervorgangs Apr 12, 2025 am 12:02 AM

Der Programmierungsprozess von C# in .NET enthält die folgenden Schritte: 1) Schreiben von C# Code, 2) Kompilieren in eine mittlere Sprache (IL) und 3), die durch die .NET -Laufzeit (CLR) ausführt. Die Vorteile von C# in .NET sind die moderne Syntax, das leistungsstarke Typsystem und die enge Integration in das .NET -Framework, das für verschiedene Entwicklungsszenarien geeignet ist, von Desktop -Anwendungen bis hin zu Webdiensten.

See all articles