現在オフラインです。再接続するためにインターネットの接続を待っています

DataReader の GetSchemaTable メソッドと Visual c# を使用して列スキーマを取得するには、方法NET

この記事は、以前は次の ID で公開されていました: JP310107
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:310107
マイクロソフトの Visual Basic では。NET 版記事は、 310108.
マイクロソフト ビジュアルの C++.この資料のバージョン NET を参照してください。 309683.

この資料を参照します。次の Microsoft にします。NET Framework クラス ライブラリの名前空間。
  • System.Data.OleDb

このタスクで

概要
この資料は、ADO のDataReaderオブジェクトのGetSchemaTableメソッドを使用する方法を示します。NET 列スキーマ情報を取得します。他列のスキーマの名前は、そのフィールドのプロパティです。列スキーマ情報列に関する次の情報は次のとおりです。
  • 名前
  • データ型
  • サイズ
  • 列が主キーのフィールドかどう
  • 列がオート ナンバー型 (オートインクリメント) のかどうかフィールド
GetSchemaTableメソッドは、 DataReaderの列スキーマを含むDataTableプロパティを返します。DataTableには 1 つの行、結果セット内の各フィールドにはが含まれます。各列結果セット内のフィールドのプロパティにマップされます。DataTable列のColumnNameプロパティは、 ColumnNameデータ型ColumnSizeIsKeyColumnIsAutoIncrementプロパティなど、フィールドのプロパティの名前です。DataTable列の値は、 ColumnNameプロパティのFirstName値などのフィールドのプロパティの値です。
フィールドがあるかどうかなど、主キー情報を取得するのには主キーの一部とは、オートインクリメント ・フィールドかどうかは、 CommandBehavior.KeyInfoにはDataReaderCommandBehavior値を設定する必要があります。

GetSchemaTableメソッドは、か、OLE DB を使用できます。NET のプロバイダーや、SQL。NETプロバイダー。OleDbDataReader.GetSchemaTableメソッドは、OLE DB のIColumnsRowset::GetColumnsRowsetメソッドにマップします。SqlDataReader.GetSchemaTableメソッドは、OLE DB プロバイダーのレイヤーを使用しません。

メモ、明示的にGetSchemaTableメソッドを使用していない場合は、 DataReaderの列スキーマを返しません。また、 GetSchemaTableを使用して列スキーマを取得する場合は、 DataReaderを更新できません。DataReaderは常に読み取り専用、順方向専用のストリームからのデータを取得します。データベース。

back to the top

GetSchemaTable メソッドを使用する場合

  • SqlConnectionオブジェクトが SQL Server のスキーマ情報の取得をサポートしていませんメソッドに、 OleDbConnectionオブジェクトのGetOleDbSchemaTableメソッドに似ています。GetSchemaTableメソッドのSqlDataReaderクラス列スキーマを取得する簡単な方法を提供します。SQL Server からの情報です。
  • データベース、テーブル、および列スキーマ情報、 OleDbConnectionオブジェクトのGetOleDbSchemaTableメソッドが返すことができますが、DataReaderオブジェクトのGetSchemaTableメソッドのみの列を取得する場合に使用する方が簡単であることがあります。スキーマの情報です。
  • GetSchemaTableメソッドを使用して、列名とその他のカスタマイズを既存のDataTableプロパティのスキーマに基づいて新しいDataTableを作成することができます。列の属性。GetSchemaTableを使用して新しいテーブルを定義する方法を説明するサンプル コードについては、「Visual Studio サンプル:: Fitch を参照してください。Mather 7.0 SQL クエリの実行」のトピックでは、Microsoft の Visual Studio。NET のオンラインヘルプします。
back to the top

OLE DB での列のスキーマを取得します。NET のプロバイダー

このサンプル スキーマ情報 (フィールドの列を一覧表示されます。プロパティの [社員] テーブルで、SQL Server の Northwindデータベース。

OLE DB を使用すると次のことに注意してください。NET のプロバイダーを使用します。OleDbDataReaderオブジェクトのGetSchemaTableメソッド。
  1. Visual Studio を起動します。NET] および [作成、新しい Visual c#コンソール アプリケーションのプロジェクトです。デフォルトで Class1.cs が作成されます。
  2. Class1 のコード ウィンドウを開きます。次のコードを貼り付けます名前空間の宣言の上の [コード] ウィンドウの上部にあります。
    using System.Data;using System.Data.OleDb;					
  3. コード ウィンドウで、次のコードをMain関数に貼り付けます。
    OleDbConnection cn = new OleDbConnection();OleDbCommand cmd = new OleDbCommand();DataTable schemaTable; OleDbDataReader myReader; 			 //Open a connection to the SQL Server Northwind database.cn.ConnectionString = "Provider=SQLOLEDB;Data Source=server;User ID=login;                       Password=password;Initial Catalog=Northwind";cn.Open();//Retrieve records from the Employees table into a DataReader.cmd.Connection = cn;cmd.CommandText = "SELECT * FROM Employees";myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo); //Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable();//For each field in the table...foreach (DataRow myField in schemaTable.Rows){    //For each property of the field...    foreach (DataColumn myProperty in schemaTable.Columns) {	//Display the field name and value.	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());    }    Console.WriteLine();    //Pause.    Console.ReadLine();}//Always close the DataReader and connection.myReader.Close();cn.Close();					
  4. SQL Server に正常に接続するのには、 ConnectionStringプロパティのパラメーターを変更します。コンピューター。
  5. コンパイルし、プロジェクトを実行するのには、F5 キーを押します。通知各フィールドのプロパティが、コンソール ウィンドウに表示されること。
  6. 一覧をスクロールして、コンソールを終了するには、ENTER キーを押します。アプリケーションは、統合開発環境に戻る(IDE)。
back to the top

列のスキーマに、SQL を取得します。NET のプロバイダー

このサンプル スキーマ情報 (フィールドの列を一覧表示されます。プロパティの [社員] テーブルで、SQL Server の Northwindデータベース。

SQL を使用すると次のことに注意してください。NET のプロバイダーは、 SqlDataReaderオブジェクトのGetSchemaTableメソッドを使用します。
  1. Visual Studio を起動します。NET、および作成、新しい Visual c#コンソール アプリケーションのプロジェクトです。デフォルトで Class1.cs が作成されます。
  2. Class1 のコード ウィンドウを開きます。次のコードを貼り付けます名前空間の宣言の上の [コード] ウィンドウの上部にあります。
    using System.Data;using System.Data.SqlClient;					
  3. コード ウィンドウで、次のコードをMain関数に貼り付けます。
    SqlConnection cn = new SqlConnection();SqlCommand cmd = new SqlCommand();DataTable schemaTable; SqlDataReader myReader; 			 //Open a connection to the SQL Server Northwind database.cn.ConnectionString = "Data Source=server;User ID=login;                       Password=password;Initial Catalog=Northwind";cn.Open();//Retrieve records from the Employees table into a DataReader.cmd.Connection = cn;cmd.CommandText = "SELECT * FROM Employees";myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);//Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable();//For each field in the table...foreach (DataRow myField in schemaTable.Rows){    //For each property of the field...    foreach (DataColumn myProperty in schemaTable.Columns) {	//Display the field name and value.	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());    }    Console.WriteLine();    //Pause.    Console.ReadLine();}//Always close the DataReader and connection.myReader.Close();cn.Close();					
  4. SQL Server に正常に接続するのには、 ConnectionStringプロパティのパラメーターを変更します。コンピューター。
  5. F5 キーを押してコンパイルし、プロジェクトを実行します。注意してください、各フィールドのプロパティがコンソール ウィンドウに一覧表示されます。
  6. 一覧をスクロールして、コンソールを終了するには、ENTER キーを押します。アプリケーションと、IDE に戻ります。
back to the top
関連情報
DataReaderおよびGetSchemaTableメソッドの詳細については、以下のトピックでは、Visual Studio を参照してください。NET のオンラインヘルプ: OleDbConnectionオブジェクトのGetOleDbSchemaTableメソッドを使用してくださいスキーマ情報を取得する方法については、文書番号をクリックしてください。以下の「サポート技術情報」資料を参照するには。
309681 GetOleDbSchemaTable と Visual c# を使用してスキーマ情報を取得するには、方法を指定します。NET
back to the top

警告: この記事は自動翻訳されています

プロパティ

文書番号:310107 - 最終更新日: 06/12/2012 06:14:00 - リビジョン: 1.0

  • kbhowtomaster kbsqlclient kbsystemdata kbdatabase kbmt KB310107 KbMtja
フィードバック
/html>