アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#でOracleデータベースへ接続して
データーベースにある全てのテーブル名を取得したいのですが、取得した一覧を変数にする方法が分かりません。

SQL文「SELECT * FROM TAB」で一覧を取得することはわかったのですが、この結果を変数に格納することができません。
何か方法をご存知のかたが居られましたらご教授願えないでしょうか?

A 回答 (1件)

今、手元にC#、Oracleの環境がないので、vb.net、MYSQL/ODBCになってしまいますが。


Imports System.Data.Odbc
Imports System.Collections.Generic

Class MyOLER
Public Shared Sub Main()
Dim connectionString As String
Dim queryString As String

connectionString = "dsn=MYSQL;user id=root;password=nara1109;database=test;"
querystring = "show tables;"
Using connection As New OdbcConnection(connectionString)
Dim command As New OdbcCommand(queryString, connection)

connection.Open()

Dim reader As OdbcDataReader = command.ExecuteReader()
Dim TableNames As New List(Of String())
Dim s As String()

While reader.Read()
s = New String(2) {}

s(0) = reader(0).ToString
s(1) = ""
'TableNames.add(reader(0).ToString)
TableNames.add(s)
End While
For Each TableName As String() In TableNames
Console.WriteLine(TableName(0))
Next
reader.Close()
End Using
End Sub
End Class
のように、ADO.NETの「connection」オブジェクトに接続文字列設定してOpen、Oracleだったら「select owner,table_name from all_tables」をcommandに設定してクエリを実行。
2つのフィールドが帰ってくるので、それを配列(上記ならs)に代入。
で、「reader.Read()」がfalseになるまで回す。
格納数は「配列のリスト」になります。
ポイントは格納する配列はループ内でレコード単位にNewで生成することぐらいでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す