ホーム > コンピュータ > DataBase > PostgresSQL > Npgsql

厳密に型指定されたデータセットとその動作[Npgsqlドキュメント]

作成日 2015.03.06
最終更新日 2015.03.06

概要

PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。 旧版ドキュメント(外部サイト) の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。 PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。

原文

npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)

公式ページのドキュメントです。英語で書かれています。

厳密に型指定されたデータセットとその動作

Working with strongly typed datasets

この例は、XSDによって作成された厳密に型指定されたデータセットの使い方を説明します。 開始するには、私たちは、適切なスキーマーを指定しているXSDファイルを必要とします。 あなたは、手動で、このファイルを作成することができます。 あるいは、あなたは、あなたのための、それを作り出すための、XSDツールを使用することができます。 NpgsqlDataAdapterにXSDを作成させるために、 あなたは、XMLファイルに、それを与える必要があります。;XMLファイルは、XMLスキーマーの推測ができます。


public void GenerateXmlFromDataSet(NpgsqlConnection conn)
{
    conn.Open();
    var da = new NpgsqlDataAdapter("select * from tablea", conn);
    var ds = new DataSet();     
    da.Fill(ds);
    ds.WriteXml("StrongDataSetFeed.xml");
}
			

例のコードは、以下によく似たように見えるファイルを結果として生じます。:


<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
    <field_serial>1</field_serial>
    <field_text>Random text</field_text>
  </Table>
  <Table>
    <field_serial>2</field_serial>
    <field_int4>4</field_int4>
  </Table>
  <Table>
    <field_serial>3</field_serial>
    <field_int8>8</field_int8>
  </Table>
  <Table>
    <field_serial>4</field_serial>
    <field_bool>true</field_bool>
  </Table>
  <Table>
    <field_serial>5</field_serial>
    <field_text>Text with ' single quote</field_text>
  </Table>
</NewDataSet>
			

次のコマンドは、XSDが作成するファイルを使用します。:


xsd StrongDataSetFeed.xml
			

XSDは、すべての型が、文字列としての指定されている、XMLスキーマーを作成するでしょう。 結果として、私たちは、正しい型を指定するために、XSDを変更する必要があります。 よく似たXSDファイルが、結果として生じます。:


<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" 
              xmlns:xs="http://www.w3.org/2001/XMLSchema" 
              xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="pt-BR">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Table">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="field_serial" type="xs:int" minOccurs="0" />
              <xs:element name="field_text" type="xs:string" minOccurs="0" />
              <xs:element name="field_int4" type="xs:int" minOccurs="0" />
              <xs:element name="field_int8" type="xs:long" minOccurs="0" />
              <xs:element name="field_bool" type="xs:boolean" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
			

上記のファイルが与えられます。次に示すコマンドは、厳密に型指定されたデータセットを作成します。:


xsd StrongDataSetFeed.xsd /dataset
			

このコマンドは、厳密に型指定されたデータセットのための、アセンブリにコンパイルするファイルを作成します。それは、下記の例で使用されています。:


using System;
using Npgsql;

public class t
{
    public static void Main(String[] args)
    {
        NpgsqlConnection conn = new NpgsqlConnection
          ("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;");
        conn.Open();

        NpgsqlDataAdapter da = new NpgsqlDataAdapter("Select * from tablea", conn);
        NewDataSet n = new NewDataSet();
        da.Fill(n);

        foreach (NewDataSet._TableRow tr in n._Table) {
            Console.WriteLine(tr.field_serial);
        }
    }
}
			
inserted by FC2 system