ADO.NET六(DataRow DataColumn)

3013 ワード

SqlCommandオブジェクトのExecuteNonQueryメソッドを使用して非クエリーSQL文を実行してデータテーブルの更新操作を実現し、DataSetオブジェクトを使用しても同じ機能を実現し、データアクセス時間を節約できることを説明しました.各DataSetは複数のDataTableで構成されており、DataSetのデータを更新することは実際にはDataTableを更新することによって実現される.各DataTableオブジェクトは、行(DataRow)と列(DataColumn)で構成されています.次に、DataRowクラスとDataColumnクラスの使用について説明します.
1)DataRowクラス
DataRowクラスは、データテーブルのローを表し、そのクラスを使用してデータテーブルのローの追加、変更、削除を直接行うことができます.DataRowクラスでよく使用される属性とメソッドを次の表に示します.
属性またはメソッド
説明
Table
属性、DataRowオブジェクトによって作成されるDataTableの名前を設定する
RowState
属性、現在の行のステータスの取得
HasErrors
属性、現在の行にエラーがないかどうかを取得
AcceptChanges()
メソッド、DataTableの値の更新
RejectChanges()
メソッド、DataTableの値の更新を取り消す
Delete()
メソッドは、現在のローが削除され、AcceptChangesメソッドが実行された後にデータテーブルが更新されます.
DataRowクラスには構築方法がありません.DataTableのNewRowメソッドでDataRowクラスのオブジェクトを作成する必要があります.具体的な文は次のとおりです.
  • DataTable dt = new DataTable();
  • DataRow dr = dt.NewRow();

  • このようにdrは新しく追加された行であり、各行のデータは複数の列から構成されており、DataTableオブジェクトにテーブル構造が既に存在する場合は、dr[ ]= の形式をそのまま用いてテーブル内の列に値を付与することができる.
    2)DataColumnクラス
    DataColumnクラスは、データテーブル内のカラムオブジェクトであり、データベース内のテーブルのカラム定義と同様に、カラム名およびデータ型を設定できます.DataColumnクラスでよく使われる構造方法を下表に示します.
    構築方法
    説明
    DataColumn()
    パラメトリックコンストラクションメソッド
    DataColumn(string columnName)
    パラメータ付き構造方法columnNameパラメータはカラム名を表します
    DataColumn(string columnName,Type dataType)
    パラメータ付き構造方法columnNameパラメータはカラム名、dataTypeパラメータはカラムのデータ型を表します
    DataColumnクラスには、次の表に示すように、DataColumnオブジェクトを設定するプロパティがあります.
    ツールバーの
    説明
    ColumnName
    属性、DataColumnオブジェクトの列名の設定
    DataType
    属性、DataColumnオブジェクトのデータ型の設定
    MaxLength
    属性、DataColumnオブジェクト値の最大長を設定する
    Caption
    属性:テーブルの列に別名を設定するのと同様に、DataColumnオブジェクトの表示時の列名を設定します.
    DefaultValue
    属性、DataColumnオブジェクトのデフォルト値の設定
    AutoIncrement
    属性、DataColumnオブジェクトを自動成長列として設定します.SQL Serverのデータテーブルの識別列と似ています.
    AutoIncrementSeed
    自動成長カラムの初期値を設定するためにAutoIncrementプロパティに関連付けられたプロパティ
    AutoIncrementStep
    自動成長列が増加するたびに増加する値を設定するプロパティ
    Unique
    データテーブルのユニークな制約と同様に、DataColumnオブジェクトの値をユニークに設定します.
    AllowDBNull
    属性、DataColumnオブジェクトの値が空に許可されているかどうかを設定します.
    次に、DataRowクラスとDataColumnクラスの使用例を示します.
     
      DataTable dt = new DataTable("myTable");   DataColumn dc1 = new DataColumn("id", typeof(int));   dc1.AutoIncrement = true;   dc1.AutoIncrementSeed = 1;   dc1.AutoIncrementStep = 1;   dt.Columns.Add(dc1);   DataColumn dc2 = new DataColumn("name", typeof(string));   dc2.Caption=「名前」;  dc2.Unique = true;   dt.Columns.Add(dc2);
      DataRow dr1 = dt.NewRow();   dr1["name"] = "frank";   dt.Rows.Add(dr1);   DataRow dr2 = dt.NewRow();   dr2["name"] = "jack";   dt.Rows.Add(dr2);
    //列「name」は一意に制約されます.値「jack」は既に存在します.  //DataRow dr3 = dt.NewRow();   //dr3["name"] = "jack";   //dt.Rows.Add(dr3);   for (int i = 0; i < dt.Rows.Count; i++)   {     WriteLine($"id:{dt.Rows[i]["id"]}, name:{dt.Rows[i]["name"]}");   }