- 締切済み
VB2005でACCESSのADO.NETでのテーブル名取得
VB2005 ACCESSのテーブル名を取得したいのですが、方法をご教示ください。以下のところで悩んでいます。 OpenFileDialog1.Filter = "アクセス ファイル (*.mdb)|*.mdb" OpenFileDialog1.ShowDialog() If OpenFileDialog1.FileName <> "" Then Dim St As String Dim Cn As New System.Data.OleDb.OleDbConnection Dim SQL As System.Data.OleDb.OleDbCommand Dim UserID As String = "Admin" Dim Password As String = "" Dim MDBFile As String = OpenFileDialog1.FileName Dim N As String = Microsoft.VisualBasic.Right(MDBFile, 9) St = "Provider=""Microsoft.Jet.OLEDB.4.0"";" St &= "Data Source=""" & MDBFile & """;" St &= "User ID=" & UserID & ";" St &= "Jet OLEDB:Database Password=" & Password Cn.ConnectionString = St SQL = Cn.CreateCommand Cn.Open() この後テーブル名までたどり着けません DataTable Cn.GetSchema Cn.GetOleDbSchemaTable( "restrictions") などヘルプなどから試みていますが、これらのコーディング法がわかりません。 テーブル名がわかっている(サンプルのPubs の "Publisher")場合はデータセットからはフィールド名が取得できたのですが・・・ よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Hardking
- ベストアンサー率45% (73/160)
OleDbConnectionオブジェクトの GetOleDbSchemaTableメソッドを使って DBのテーブル名を取得することができます。 ◆テーブル名の取得 合には,TABLE_TYPEに"TABLE"を設定すれば、テーブル名が戻り値(Datatable型) に格納されます。OleDbConnectionオブジェクトをconとすると、次のような コーディングになります。 Dim schemaTable As DataTable schemaTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"})
お礼
ありがとうございました。回答に従い1ステップすすめましらが、新たな質問としてお訪ねさせていただきます。
補足
早速の回答ありがとうございます。.NET初めてでいろいろと戸惑っています。御回答に中で OleDbSchemaGuid.Tablesはどう指定してよいのかご指示お願いいたします。