none
讀取資料表裡面的欄位名稱 RRS feed

  • 問題

  • 使用資料庫Access 開發工具 Visual Basic 2005

    一個資料表裡面有  姓名 座號   生日  等欄位名稱

    我要如何才可以去抓取到這些欄位名稱呢?

    有找過SQL的語法,但都沒辦法顯示欄位名稱

    不知道有哪個類別或者方法可以取得呢

    謝謝

    2006年10月20日 上午 09:06

解答

  • 當你用 ADO.NET 去 Select * Form 資料表

    則 DataSet.Tables(0).Columns 為所求。

    你可以這樣列舉:

     Public Function GetColumnName()

      Dim tFields() As String

      With m_DataTable
       Dim iCol, nCol As Integer

       nCol = .Columns.Count

       ReDim tFields(nCol - 1)

       For iCol = 0 To nCol - 1
        tFields(iCol) = .Columns.Item(iCol).Caption ' 註:若資料來源為 Excel 要另外處理。
       Next
      End With

      GetColumnName = tFields

     End Function

    2006年10月20日 上午 11:17

所有回覆

  • 當你用 ADO.NET 去 Select * Form 資料表

    則 DataSet.Tables(0).Columns 為所求。

    你可以這樣列舉:

     Public Function GetColumnName()

      Dim tFields() As String

      With m_DataTable
       Dim iCol, nCol As Integer

       nCol = .Columns.Count

       ReDim tFields(nCol - 1)

       For iCol = 0 To nCol - 1
        tFields(iCol) = .Columns.Item(iCol).Caption ' 註:若資料來源為 Excel 要另外處理。
       Next
      End With

      GetColumnName = tFields

     End Function

    2006年10月20日 上午 11:17
  • 趕快研究看看 有問題在PO上來一起討論.. 謝謝
    2006年10月21日 上午 09:51
  • 發現還有一個方法可以用

            Dim connDbStr As String
            connDbStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.mdb"
            Dim connection As New OleDbConnection(connDbStr)
            connection.Open()
            Dim cmd As New OleDbCommand("Select * From 資料表", connection)
            Dim DR As OleDbDataReader
            DR = cmd.ExecuteReader
            For i As Integer = 0 To mr.FieldCount-1
                Debug.WriteLine("資料表欄位名稱" & DR.GetName(i))   '資料表欄位名稱
            Next
            connection.Close()

            connection.Dispose()

    2006年10月21日 下午 01:14