Spaltennamen aus Datenbank auslesen

swissinside

Mitglied
Ich habe nun den ganzen Tag vergeblich danach gesucht, wie man die Spaltennamen aus einer Datenbank ausliest.

verwendete Software: Microsoft Visual Basic Express Edition 2008

Um Datensätze abzufragen und in ein DataGridView zu "füllen" gehe ich folgendermassen vor:
Code:
Dim locConnection As SqlConnection
Dim locCommand As SqlCommand
Dim locDataReader As SqlDataReader

locConnection = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename='D:\Test.mdf';Integrated Security=True;User Instance=True")

locConnection.Open()

locCommand = New SqlCommand("SELECT * FROM Adressen", locConnection)

locDataReader = locCommand.ExecuteReader()

        Dim i As Integer = 0
        i = 0
        Do While locDataReader.Read()
            DataGridView1.Rows.Add()
            DataGridView1.Rows(i).Cells(0).Value = locDataReader(0)
            DataGridView1.Rows(i).Cells(1).Value = locDataReader(1)
            DataGridView1.Rows(i).Cells(2).Value = locDataReader(2)
            DataGridView1.Rows(i).Cells(3).Value = locDataReader(3)
            i += 1
        Loop
        locDataReader.Close()
        locConnection.Close()

Wodurch muss ich nun "SELECT * FROM Adressen" ersetzen um nach den Spaltennamen zu fragen?

Nebenbei: Ich bin absoluter Anfänger, wenn es um Datenbanken geht...
 
sp_help scheint das zu sein, wonach ich suchte. Nur habe ich es noch nicht geschafft, die Spaltennamen daraus zu lesen.
Hier den Code, den ich bisher habe:
Code:
Dim locConnection As SqlConnection
Dim locCommand As SqlCommand
Dim locDataReader As SqlDataReader

locConnection = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename='D:\Test.mdf';Integrated Security=True;User Instance=True")

locConnection.Open()

locCommand = New SqlCommand("sp_help Adressen", locConnection)

locDataReader = locCommand.ExecuteReader()

        Dim i As Integer = 0
        Do While locDataReader.Read()
            MeMessageBox.Show(locDataReader(0))
        Loop
        locDataReader.Close()
        locConnection.Close()

Vorerst reicht es, wenn alle Spaltennamen per MessageBox ausgegeben werden.
Informationen wie Beispielsweise der Tabellenname konnte ich auslesen, aber eben nicht die Spaltennamen.

Wäre nett, wenn mir jemand einen Tip geben würde, wie ich meinen Code verändern muss, um zum Ziel zu kommen.
 
Also ich les die Columns im SQL Server so aus:

SQL:
SELECT sc.[column_id] as Nr ,sc.[name] as Spalte 
FROM meineDatenbank.sys.sysobjects so 
LEFT JOIN meineDatenbank.sys.columns  sc ON so.id = sc.object_id

Ich benutze nicht die stored proc aus vielerlei Gründen, wobei diese mit sicherheit Ihre Berechtigung hat.

Grüsse bb
 
Zurück