DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

ADO.NETからの出力結果のカラム名を取り出すには?

  • 題名: ADO.NETからの出力結果のカラム名を取り出すには?
  • 著者: あみっど
  • 日時: 2003/02/17 9:59:00
  • ID: 780
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
はじめまして、どぼんさま、みなさま。
普段はこちらの掲示板にていろいろ勉強させていただいている者です。

現在、ADO.NETを使用したCSV出力に挑戦しているのですが、
テーブルのカラム名を出力させることがうまくできていません。


  '//渡されたSQL文とCSVファイルのパスにより、CSVファイルを作成します
  Public Function fncCreateCsvFile(ByRef strSQL As String, _
                   ByVal mstrCsvFilePATH As String, _
                   ByVal frmForm As System.Windows.Forms.Form) _
                  As Boolean


    Dim strFileNum As String
    Dim strCsvText As String
    Dim strCsvTexts() As String

    Dim dsOra As New DataSet()
    Dim drOra As DataRow
    Dim strFill As String = "Create_CSV_Table"

    Dim a As Integer


    'データ件数のチェックをおこないます
    Call gclsDBProc.ReadSQL(strSQL, dsOra, strFill)

    If dsOra.Tables(strFill).Rows.Count = 0 Then
      MsgBox("対象データがありませんでした")
      Exit Function
    End If


    strFileNum = FreeFile()

    'CSVファイルオープン
    FileOpen(strFileNum, _
         mstrCsvFilePATH, _
         OpenMode.Output, _
         OpenAccess.Write, _
         OpenShare.LockWrite)


    ''ヘッダ部の作成
    'For Each drOra In dsOra.Tables(strFill).Rows

    '  '横一列(=一行)ごとに、動的変数に格納していきます
    '  For a = 0 To dsOra.Tables(strFill).Columns.Count - 1

    '    ReDim Preserve strCsvTexts(a)

    '    strCsvTexts(a) = drOra
    '    strCsvText = strCsvText & "," & strCsvTexts(a)

    '  Next

    '  '一行ずつ出力します
    '  WriteLine(strFileNum, strCsvText)

    'Next

    'strCsvText = ""


    '明細部の作成
    For Each drOra In dsOra.Tables(strFill).Rows

      '横一列(=一行)ごとに、動的変数に格納していきます
      For a = 0 To dsOra.Tables(strFill).Columns.Count - 1

        ReDim Preserve strCsvTexts(a)
        strCsvTexts(a) = drOra(a).ToString

        If a = 0 Then
          strCsvText = strCsvText & strCsvTexts(a)
        Else
          strCsvText = strCsvText & "," & strCsvTexts(a)
        End If
      Next

      '一行ずつ出力します
      WriteLine(strFileNum, strCsvText)
      strCsvText = ""

    Next


    'CSVファイルクローズ
    FileClose(strFileNum)

    fncCreateCsvFile = True


  End Function



真ん中のコメントアウト部分「ヘッダ部の作成」が本来であれば、
SELECT文の実行結果の列名を出力しなければならないはずの部分なのですが、
うまくいきません。

ADOのころは、「データ格納変数.NAMES」のプロパティで列名をとってくる
ことができていたのですが、ADO.NETでは列名をとれないのでしょうか?

ご教授よろしくお願いいたします。

DOBON.NET | プログラミング道 | プログラミング掲示板