VB.net : GetSchema メソッドでデータベース内のテーブル一覧と指定したテーブルの列名一覧を取得する 拡張子:txtvbswsfjsphpjavahtmlutf8sjis using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Data.Odbc; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { // 新しい OdbcConnectionStringBuilder オブジェクトを作成 OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); // ドライバ文字列をセット ( 波型括弧{} は必要ありません ) // 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI builder.Driver = "MySQL ODBC 5.3 Unicode Driver"; // 接続用のパラメータを追加 builder.Add("SERVER", "localhost"); builder.Add("DATABASE", "lightbox"); builder.Add("UID", "root"); builder.Add("PWD", "password"); // 内容を確認 Console.WriteLine(builder.ConnectionString); // 新しい OdbcConnection オブジェクトを作成 OdbcConnection myCon = new OdbcConnection(); // 接続文字列を設定 myCon.ConnectionString = builder.ConnectionString; // 接続を開く try { myCon.Open(); } catch (OdbcException ex) { Console.WriteLine("接続エラーです"); // Console.WriteLine( ex.Message ) ErrorAction(ex); return; } // データベースのテーブル一覧のメタデータを取得 // TABLE_CATALOG // TABLE_SCHEMA // TABLE_NAME // TABLE_TYPE DataTable dataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Tables); // 一覧表示 DataRow row = null; foreach (DataRow row_loopVariable in dataTable.Rows) { row = row_loopVariable; DataColumn column = dataTable.Columns["TABLE_NAME"]; Console.WriteLine(row[column]); } // データベースの列名一覧のメタデータを取得 // TABLE_CATALOG // TABLE_SCHEMA // TABLE_NAME // COLUMN_NAME // 配列で、対象データを絞る string[] restrictionValues = { null, null, "社員マスタ" }; // 社員マスタの列のメタデータ dataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Columns, restrictionValues); // 列名の一覧を表示 foreach (DataRow row_loopVariable in dataTable.Rows) { row = row_loopVariable; DataColumn column = dataTable.Columns["COLUMN_NAME"]; Console.WriteLine(row[column]); } // 接続を閉じる myCon.Close(); // OdbcConnection オブジェクトに使用されているすべてのリソースを解放 myCon.Dispose(); // 処理終了 Console.WriteLine("処理が終了しました"); // 一時停止 Console.Write("Enterキーを押して下さい : "); Console.ReadLine(); } // ********************** // エラー処理 // ********************** public static void ErrorAction(OdbcException ex) { string CrLf = "\r\n"; string errorMessages = ""; int i = 0; for (i = 0; i <= ex.Errors.Count - 1; i++) { errorMessages += "Index #" + i.ToString() + CrLf + "Message: " + ex.Errors[i].Message + CrLf + "NativeError: " + ex.Errors[i].NativeError.ToString() + CrLf + "Source: " + ex.Errors[i].Source + CrLf + "SQL: " + ex.Errors[i].SQLState + CrLf; } Console.WriteLine(errorMessages); } } }
VB.net : GetSchema メソッドでデータベース内のテーブル一覧と指定したテーブルの列名一覧を取得する
using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Data.Odbc; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { // 新しい OdbcConnectionStringBuilder オブジェクトを作成 OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); // ドライバ文字列をセット ( 波型括弧{} は必要ありません ) // 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI builder.Driver = "MySQL ODBC 5.3 Unicode Driver"; // 接続用のパラメータを追加 builder.Add("SERVER", "localhost"); builder.Add("DATABASE", "lightbox"); builder.Add("UID", "root"); builder.Add("PWD", "password"); // 内容を確認 Console.WriteLine(builder.ConnectionString); // 新しい OdbcConnection オブジェクトを作成 OdbcConnection myCon = new OdbcConnection(); // 接続文字列を設定 myCon.ConnectionString = builder.ConnectionString; // 接続を開く try { myCon.Open(); } catch (OdbcException ex) { Console.WriteLine("接続エラーです"); // Console.WriteLine( ex.Message ) ErrorAction(ex); return; } // データベースのテーブル一覧のメタデータを取得 // TABLE_CATALOG // TABLE_SCHEMA // TABLE_NAME // TABLE_TYPE DataTable dataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Tables); // 一覧表示 DataRow row = null; foreach (DataRow row_loopVariable in dataTable.Rows) { row = row_loopVariable; DataColumn column = dataTable.Columns["TABLE_NAME"]; Console.WriteLine(row[column]); } // データベースの列名一覧のメタデータを取得 // TABLE_CATALOG // TABLE_SCHEMA // TABLE_NAME // COLUMN_NAME // 配列で、対象データを絞る string[] restrictionValues = { null, null, "社員マスタ" }; // 社員マスタの列のメタデータ dataTable = myCon.GetSchema(OdbcMetaDataCollectionNames.Columns, restrictionValues); // 列名の一覧を表示 foreach (DataRow row_loopVariable in dataTable.Rows) { row = row_loopVariable; DataColumn column = dataTable.Columns["COLUMN_NAME"]; Console.WriteLine(row[column]); } // 接続を閉じる myCon.Close(); // OdbcConnection オブジェクトに使用されているすべてのリソースを解放 myCon.Dispose(); // 処理終了 Console.WriteLine("処理が終了しました"); // 一時停止 Console.Write("Enterキーを押して下さい : "); Console.ReadLine(); } // ********************** // エラー処理 // ********************** public static void ErrorAction(OdbcException ex) { string CrLf = "\r\n"; string errorMessages = ""; int i = 0; for (i = 0; i <= ex.Errors.Count - 1; i++) { errorMessages += "Index #" + i.ToString() + CrLf + "Message: " + ex.Errors[i].Message + CrLf + "NativeError: " + ex.Errors[i].NativeError.ToString() + CrLf + "Source: " + ex.Errors[i].Source + CrLf + "SQL: " + ex.Errors[i].SQLState + CrLf; } Console.WriteLine(errorMessages); } } }