テーブル名取得 [SQL Server 2008][VB 2013]

Visual Basic 2010/2008 やさしいADO.NET DBプログラム

   やさしいVB 2010 / 2008 ADO.NET

ConnectionクラスのGetSchemaメソッドで、接続したMicrosoft SQL Server 2008 Express のデータベースのテーブル名を取得することができます。

GetSchemaメソッドは指定したテーブルの列名も取得できます。

GetSchemaメソッド

テーブル名取得

接続したデータベースのテーブル名を取得するサンプルプログラムを作成します。

[テーブル名取得]ボタンをクリックすると、データベースに接続してテーブル名称を取得します。取得したテーブル名称は、テーブルごとに改行してラベルに表示します。

テーブル名称を取得するためには、GetSchemaメソッドの引数を正しく設定する必要があります。

GetSchemaメソッドには、ふたつの引数に6つの値を設定します。

◆第1引数:テーブル名称を取得するためには、"Tables"を指定

◆第2引数:文字列配列になっており、次の4項目を設定

  • 1番目:データベース名。接続文字列のDatabaseキーワードに設定したデータベース名。Databaseキーワードを指定していないときは、AttachDBFilenameで指定した完全パス名のデータベースファイル
  • 2番目:テーブル管理名称。テーブルを既定値で作成したので、既定値の"dbo"
  • 3番目:指定しない
  • 4番目:テーブルタイプ。"BASE TABLE"を指定

GetSchemaメソッドを呼び出した結果は、DataTableオブジェクトとして返され、テーブル名称は、"TABLE_NAME"列に格納されています。

app.configファイルの接続文字列の修正

app.configファイルの接続文字列に、Databaseキーワードの設定がなければ、「Database=@@@;」を追加してください。@@@は、分かりやすい名称にします。

次のサンプルプログラムでは、Databaseキーワードに「販売管理データベース」を設定します。

    <connectionStrings>
        <add name="Adonet.My.MySettings.sampleConnectionString"
         connectionString="Data Source=.\SQLEXPRESS;
                           AttachDbFilename=&quot;
                                            D:\Program Files
                                            \Microsoft SQL Server
                                            \MSSQL10_50.SQLEXPRESS\MSSQL\DATA
                                            \販売管理データベース.mdf&quot;;
                           Integrated Security=True;
                           Connect Timeout=30;
                           User Instance=True;
    ここに追加--------->   Database=販売管理データベース;"
         providerName="System.Data.SqlClient" />
    </connectionStrings>

Copyright© やさしいVB2012/2010 ADO.NET. All rights reserved.