ホームページ バックエンド開発 C#.Net チュートリアル ado.net とは何か、およびその簡単な実装の詳細

ado.net とは何か、およびその簡単な実装の詳細

May 31, 2017 pm 02:32 PM

1. はじめに

Ado.netは、主にSqlConnection、SqlCommand、SqlDataReader、DataSetの5つのオブジェクトで構成されています

1。 SqlConnection クラス SQL サーバー データベースへの接続を表します

接続文字列の形式は一般に次の 2 つの形式があります。具体的なパラメーターについては、msdn

を参照してください 1) Persist Security Info=False;Integrated Security=true;Initial Catalog=。 Northwind;server=(local )

2) Server=.;Database=demodb;User=sa;Password=123;

以下のように接続を作成します

SqlConnectionconn =new平方接続 (connString );

2. SqlCommandクラスはデータベース実行コマンドオブジェクトを表します

1) SQLスクリプトまたはストアドプロシージャ、タイムアウト、パラメータ、および必要なトランザクションを設定するために使用されます。実行されました。

// ; " " " 3) いくつかの主なメソッド " " " 操作 utexeceExectEreader:クエリを実行してsqldatareaderオブジェクトを返します

culescalar:queryを実行して結果セットの最初の行と列を返すことがデータベースに接続されます。

SqlDataAdapter();

selectCommand);

string

selectCommandText, SqlConnection selectConnection);

mandText , string selectConnectionString); 4.SqlDataReader クラスは、データ フローのみで読み取る方法を提供します

5.DataSet クラスは、メモリ内のデータのキャッシュを表します 2. ADO.NET の単純な実装 以下は、追加、削除、変更と確認

public class EasySqlHelper
    {
        //web.config来配置
        //private static string connString = ConfigurationManager.AppSettings["SqlConnectionString"];
        private static string connString = "Server=.;Database=demodb;User=sa;Password=123;";

        public static int ExecuteNonQuery(string sql)
        {
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();
                    }

                    return cmd.ExecuteNonQuery();
                }
            }
        }

        public static SqlDataReader ExecuteReader(string sql)
        {
            SqlConnection conn = new SqlConnection(connString);
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader rdr = null;

            try
            {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }

                rdr = cmd.ExecuteReader();
            }
            catch (SqlException ex)
            {
                conn.Dispose();
                cmd.Dispose();

                if (rdr != null)
                {
                    rdr.Dispose();
                }

                throw ex;
            }
            finally
            {
                cmd.Dispose();
            }

            return rdr;
        }

        public static DataTable ExecuteDataTable(string sql)
        {
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();
                    }

                    SqlDataAdapter adp = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adp.Fill(ds);

                    return ds.Tables[0];
                }
            }
        }
    }
ログイン後にコピー
IDisposable インターフェースを実装するすべてのクラスは using を使用して解放でき、呼び出しメソッドで例外が発生した場合でも解放されます。物体。

3. さまざまなプロバイダーのデータ ソース クラス インスタンスを作成する

上記のコードは、Oracle などの別のデータベースを実装する場合にのみ有効であり、.Net が提供する別のコード セットを作成する必要があります。別のデータベース インスタンスを作成するための DbProviderFactory クラス。 同時に、上記の 5 つの主要なオブジェクトも DbConnection、DbCommand、DbDataReader、および DbDataAdapter に置き換えて、特定の SQL サーバー オブジェクトをより具体的でデータベースの種類に依存しないオブジェクトに抽象化する必要があります。

//// <summary>
    /// 连接信息
    /// </summary>
    public class ConnectionInfo
    {
        private string _connectionString;
        private string _providerName;

        /// <summary>
        /// 连接字符串
        /// </summary>
        public string ConnectionString
        {
            get { return _connectionString; }
        }

        /// <summary>
        /// 提供程序的固定名称
        /// </summary>
        public string ProviderName
        {
            get { return _providerName; }
        }

        public ConnectionInfo(string connectionString, string providerName)
        {
            _connectionString = connectionString;
            _providerName = providerName;
        }
    }

    public class MySqlHelper
    {
        private static DbProviderFactory dbProvider;

        private static readonly ConnectionInfo connInfo = new ConnectionInfo("Server=.;Database=demodb;User=sa;Password=123;", "System.Data.SqlClient");

        private static void GetProvider()
        {
            dbProvider = DbProviderFactories.GetFactory(connInfo.ProviderName);
        }

        static MySqlHelper()
        {
            GetProvider();
        }

        public static int ExecuteNonQuery(string sql, DbParameter[] parameters)
        {
            int flag = 0;

            using (DbConnection conn = dbProvider.CreateConnection())
            {
                conn.ConnectionString = connInfo.ConnectionString;
                conn.Open();

                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;

                    if (parameters != null && parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }

                    flag = cmd.ExecuteNonQuery();
                }
            }

            return flag;
        }

        public static void ExecuteReader(string sql, DbParameter[] parameters, Action<IDataReader> action)
        {
            IDataReader rdr = null;
            
            using (DbConnection conn = dbProvider.CreateConnection())
            {
                conn.ConnectionString = connInfo.ConnectionString;
                conn.Open();

                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;

                    if (parameters != null && parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }

                    rdr = cmd.ExecuteReader();

                    action(rdr);

                    rdr.Close();
                }
            }
        }

        public static DataTable ExecuteDataTable(string sql, DbParameter[] parameters)
        {
            DataTable dt = null;

            using (DbConnection conn = dbProvider.CreateConnection())
            {
                conn.ConnectionString = connInfo.ConnectionString;
                conn.Open();

                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;

                    if (parameters != null && parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }

                    IDataReader rdr = cmd.ExecuteReader();

                    dt = new DataTable();
                    dt.Load(rdr);

                    rdr.Close();
                    
                }

                return dt;
            }
        }
    }
ログイン後にコピー
4. その他のサードパーティフレームワーク Dapper、IBatis.Net などがあり、参照して学ぶことができます

【関連推奨事項】

1 ASP.NET の無料ビデオ。チュートリアル

2. Ado.Netを使用してExcelテーブルにデータを更新および追加するADO.NETのEXCEL実装コード((c#))

4.手順

5.

ado.net接続とデータベースコード


以上がado.net とは何か、およびその簡単な実装の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP を使用して簡単なオンライン アンケート システムを作成する方法 PHP を使用して簡単なオンライン アンケート システムを作成する方法 Sep 24, 2023 am 10:21 AM

PHPによる簡単なオンラインアンケートシステムの書き方 インターネットの発達と普及に伴い、インターネットを介してさまざまなアンケートやアンケートを実施する人が増えています。この需要を満たすために、PHP 言語を使用して簡単なオンライン アンケート システムを作成できます。この記事では、PHPを使用して基本的なアンケートシステムを実装する方法と具体的なコード例を紹介します。データベースの設計 まず、アンケート関連のデータを格納するデータベースを設計する必要があります。 MySQLデータを利用できる

PHPを使用してシンプルなオンライン注文システムを実装する方法 PHPを使用してシンプルなオンライン注文システムを実装する方法 Sep 26, 2023 am 09:29 AM

PHP を使用して簡単なオンライン注文システムを実装する方法 インターネットの普及に伴い、注文業界は徐々にオンラインで発展しています。ユーザーのニーズに応えるためには、オンライン注文システムの開発が非常に重要になっています。この記事では、PHP 言語を使用してシンプルなオンライン注文システムを実装する方法と、具体的なコード例を紹介します。データベース構造を定義する まず、注文情報を保存するデータベース構造を定義する必要があります。 「orders」という名前のデータテーブルを作成し、次のフィールドを定義します: order_id: 注文 ID

PHPを使用して簡単な商品レビュー機能を開発する方法 PHPを使用して簡単な商品レビュー機能を開発する方法 Sep 21, 2023 am 08:49 AM

PHPを使って簡単な商品レビュー機能を開発する方法 電子商取引の隆盛に伴い、商品レビュー機能はユーザー間のコミュニケーションや消費者の商品評価を円滑にするために欠かせない機能となっています。この記事では、PHPを使用して簡単な商品レビュー機能を開発する方法と、具体的なコード例を紹介します。データベースを作成する まず、製品レビュー情報を保存するデータベースを作成する必要があります。 「product_comments」というデータベースを作成し、その中に「comment」というファイルを作成します。

PHPを使用してシンプルなオンライン注文システムを実装する方法 PHPを使用してシンプルなオンライン注文システムを実装する方法 Jun 27, 2023 pm 02:21 PM

今日は、PHP プログラミング言語を使用して、簡単なオンライン注文システムを実装します。 PHP は、Web ベースのアプリケーションの開発に最適な、人気のあるサーバーサイド スクリプト言語です。 PHP を使用して、ユーザーが Web サイトで商品を選択し、ショッピング カートに追加して、取引を完了できる簡単な注文システムを作成する方法を説明します。開始する前に、新しい PHP プロジェクトを作成し、データベースやサーバー環境などの必要な依存関係をインストールする必要があります。 MySQを使用します

PHPを使って簡単なオンラインモールを実装する方法 PHPを使って簡単なオンラインモールを実装する方法 Sep 25, 2023 pm 02:25 PM

PHP を使用して簡単なオンライン モールを実装する方法 インターネットの発展に伴い、電子商取引は買い物の一般的な方法になりました。多くの人が自分のオンラインストアを構築する方法を学びたいと考えています。この記事では、PHP言語を使って簡単なオンラインモールを実装する方法と具体的なコード例を紹介します。 1. 環境をセットアップする まず、ローカルに PHP 開発環境をセットアップする必要があります。統合開発環境を構築するには、面倒な構成作業を回避できる XAMPP または WAMP ツールを使用することをお勧めします。 2. データベース接続の作成

PHP を使用して簡単な製品比較関数を開発する方法 PHP を使用して簡単な製品比較関数を開発する方法 Sep 21, 2023 am 08:09 AM

PHP を使用して簡単な商品比較機能を開発するには、具体的なコード例が必要です 電子商取引の発展に伴い、どのブランドの商品が良いのか、どのお店にどんな商品があるのか​​が分からないなど、買い物の際に商品選びに困ることが多くなりました。最良の価格、より手頃な価格などこの問題を解決するために、ユーザーが商品の属性を簡単に比較して選択できるようにするための簡易商品比較機能を開発できます。この記事では、PHP を使用してこの機能を実装する方法と具体的なコード例を紹介します。まず、製品を作成する必要があります

PHP を使用してシンプルなオンライン人材採用システムを実装する方法 PHP を使用してシンプルなオンライン人材採用システムを実装する方法 Sep 26, 2023 pm 11:49 PM

PHP を使用してシンプルなオンライン人材採用システムを実装する方法 人材採用は企業開発における重要なリンクです。インターネットの発展に伴い、ますます多くの企業が採用プロセスを簡素化し、効率を向上させるためにオンライン人材採用システムを導入し始めています。この記事では、PHP 言語を使用してシンプルなオンライン人材採用システムを実装する方法と、具体的なコード例を紹介します。 1. 要件分析 オンライン人材採用システムを導入する前に、まずシステム要件を明確にする必要があります。単純な人材採用システムには、通常、次の機能が含まれています。

Java でシンプルなカリキュラム管理システムを設計するにはどうすればよいですか? Java でシンプルなカリキュラム管理システムを設計するにはどうすればよいですか? Nov 04, 2023 pm 03:32 PM

Java でシンプルなカリキュラム管理システムを設計するにはどうすればよいですか?教育の発展とコースの多様化に伴い、学校や教育機関は日々のコースの手配や調整を行うための効率的なコース管理システムを必要としています。広く使用されているプログラミング言語として、Java は、シンプルで実用的なコース スケジュール管理システムを設計および開発するための豊富なツールとライブラリを提供します。カリキュラム管理システムを設計する前に、システムの機能要件を明確にする必要があります。一般に、カリキュラム管理システムには次の機能を実装する必要があります。 コースを管理する

See all articles