ADO.NET-基礎総括及び実例紹介

5670 ワード

最近暇な時間に書いたいくつかの小さなプログラムでは、データベースにアクセスすることが多い.以下、ADOについて主に説明する.NET方面の知識、不足点があって、大神達が教えてくれることを望みます:
ADOに言及するNET、よくASPとNETは混同され、両者の違いは大きく、比較可能性はありません.以下、両者の前の違いを説明します.
  • ASP.NETはマイクロソフトです.NetFrameworkは、Webアプリケーションを開発するためのクラスライブラリを提供し、Systemにカプセル化する.Web.dllでは、対応プログラムはSystemである.Webというネーミングスペース.
  • ADO.NETは、Microsoft SQLサーバやXMLなどのデータソース、OLE DBやXMLで公開されているデータソースへの一貫したアクセスを提供します.ADO.NETクラスはSystem.Data.dllで、Systemと.Xml.dllのXMLクラス統合.

  • 簡単に言えばADO.NETはデータベースを処理するためのアクセス方法です.
    以下、ADOについて説明する.NETの5つの共通オブジェクト
  • Connectionクラス
  • データベースと対話するには、接続する必要があります.接続ヘルプでは、データベース・サーバ、データベース名、ユーザー名、パスワード、およびデータベースへの接続に必要なその他のパラメータを指定します.ConnectionオブジェクトはCommandオブジェクトによって使用され、どのデータソース上でコマンドを実行しているかがわかります.データベースと対話するプロセスは、実行する操作を指定する必要があることを意味します.これはCommandオブジェクトによって実行されます.開発者はCommandオブジェクトを使用してSQL文をデータベースに送信します.CommandオブジェクトはConnectionオブジェクトを使用して、どのデータソースに接続されているかを示します.開発者は、Commandオブジェクトを単独で使用してコマンドを直接実行したり、次のデータのセットを操作できるコマンドを保存するCommandオブジェクトの参照をDataAdapterに渡したりすることができます.
    コードは次のとおりです.
     using (SqlConnection cnn = new SqlConnection("data source=10.10.198.111;Database=systemconfig;uid=sa;password=sa"))
    
                {
    
                    cnn.Open();
    
                }
    SqlConnection              、  、   、     ;    web.config     ,      ,        ,    :
     <!--       -->
    
      <connectionStrings>
    
        <add name="connstr" connectionString="data source=10.10.198.111;Database=systemconfig;uid=sa;password=sa"/>
    
      </connectionStrings>
     private static string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

    Connectionは、次の形式でデータベース文字列にアクセスします.
    --access    
    
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Directory.GetCurrentDirectory() + (@"\Areafull.accdb
  • Commandオブジェクト
  • データとの接続に成功すると、Commandオブジェクトでクエリー、修正、挿入、削除などのコマンドを実行できます.Commandオブジェクトでよく使用されるメソッドには、ExecuteReader()メソッド、ExecuteScale()メソッド、ExecuteNonQuery()メソッドがあります.挿入データはExecuteNonQuery()メソッドで挿入コマンドを実行できます.
    コードは次のとおりです.
    using (SqlConnection cnn = new SqlConnection(connstr))
    
                {
    
                    cnn.Open();
    
                    using (SqlCommand cmd = cnn.CreateCommand())
    
                    {
    
                        cmd.CommandText = sql;//  sql  
    
                        cmd.Parameters.AddRange(parameters);//sql  
    
                     }
    
                }
  • DataAdapterクラス
  • 開発者が使用するデータは主に読み取り専用であり、開発者が最下位のデータソースに変更する必要は少ない場合があります.同様に、メモリにデータをキャッシュして、変更されていないデータがデータベースに呼び出される回数を減らす必要があります.DataAdapterは、モデルを切断することで、開発者が上記の状況の処理を容易に完了できるようにします.データベースの読み書き操作の継続的な変更が単一ロットでデータベースに返されると、DataAdapterはDataSetオブジェクトを埋めます.DataAadapterには、接続オブジェクトと、データベースの読み込みまたは書き込み時に自動的に接続をオンまたはオフにする参照が含まれます.また、DataAdapterは、データのSELECT、INSERT、UPDATE、DELETE操作に対するCommandオブジェクト参照を含む.開発者は、DataSetの各Tableに対してDataAadapterを定義し、データベースへの接続をすべて開発者に配慮します.開発者が行う作業は、DataAdapterがいつデータベースにロードまたは書き込むかを伝えることです.
    コードは次のとおりです.
     using (SqlConnection cnn = new SqlConnection(connstr))
    
                {
    
                    cnn.Open();
    
                    using (SqlCommand cmd = cnn.CreateCommand())
    
                    {
    
                        cmd.CommandText = sql;
    
                        cmd.Parameters.AddRange(parameters);
    
                        SqlDataAdapter apter = new SqlDataAdapter(cmd);
    
                        DataSet ds = new DataSet();
    
                        apter.Fill(ds);
    
                        return ds.Tables[0];
    
                    }
    
                }
  • DataSetオブジェクト
  • DataSetオブジェクトは、メモリ内のデータの表示形式です.複数のDataTableオブジェクトが含まれ、通常のデータベースのテーブルのように列と行が含まれます.開発者は、テーブル間の関係を定義して主従関係(parent-child relationships)を作成することもできます.DataSetは、特定のシーンで使用されます.メモリ内のデータの管理を支援し、データの切断操作をサポートします.DataSetは、すべてのData Providersで使用されるオブジェクトであるため、Data Providerのように特別な接頭辞を必要としない.
  • DataTableクラス
  • DataTableは、一時的にデータを保存するグリッド仮想テーブル(メモリ内のデータを表すテーブル)です.DataTableはADO dot netライブラリのコアオブジェクトです.