Tabelle aus DB per SQL abfragen und an ein DataGridView übergeben

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von bastimw.

    Tabelle aus DB per SQL abfragen und an ein DataGridView übergeben

    Hallo Zusammen,

    ich möchte, wie in der Überschrift beschrieben, eine Tabelle aus einer DB per SQL abfragen und zurück an ein DGV übergeben.
    Ich möchte die VB.net internen DS, DT etc. nicht nutzten.

    Die Funktion sieht derzeit so aus:


    Public Function SQL_LadeDT(ByVal table As String, ByVal dgv_return As DataGridView)
    Dim cmdNEU As New OleDb.OleDbCommand
    Con.Open()
    cmdNEU.Connection = Con
    cmdNEU.CommandText = "SELECT * FROM " & table.ToString & ";"
    Dim mydata As System.Data.OleDb.OleDbDataReader
    mydata = cmdNEU.ExecuteReader
    dgv_return.DataSource = mydata
    Con.Close()
    Return "OK"
    End Function


    mydata beinhaltet die Spalten der Tabelle bereits, aber mir funktioniert die Übergabe an das DGV einfach nicht.
    Datagridview.DataSource unterstützt ja schon einiges an Objekten, aber meines Wissens keine OleDbDataReader.
    Meckert da die IDE nicht?
    Oder programmierst du mit Option Strict Off? :D

    Schau dir mal die Hinweise in obigem Link etwas genauer an.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Ich möchte es so lösen, da auch die Abfragen und Änderungen per SQL gemacht werden.
    Ich persönlich nehme dafür lieber SQL als die internen Sachen.

    @petaod: Leider half mir die Seite nicht viel.
    Die IDE hat nicht gemeckert, aber die Daten wurden auch nicht an das DGV übergeben.
    Option Strict off verwende ich grundsätzlich nicht, solange ich nicht muss.

    Hast du vllt. einen Lösungsvorschlag?
    Du kannst aber einen DataReader nicht als DataSource verwenden.

    Unterschiedliche Möglichkeiten, ein DGV zu bevölkern, sind hier gelistet.
    Ist zwar C#-Code.
    Falls du Leseschwierigkeiten mit der Syntax hast, kannst du die paar Codestellen ja durch einen Converter jagen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Du brauchst hier keinen Datareader ^^ - dann würdes tud dir was doppeltes bauen.
    Geh auf dein Projekt - hinzufügen - Linq to SQL!
    Öffne den Server Explorer - Verbinde dich mit der Datenbank - und zieh dir die ganze Datenbank als Schema rein. (evtl mit der Rechten Maustaste den Name des Schemas ändern)
    Unter MySettings steht dann dein Connection String
    (bis hier her hast du noch keine einzige Programmzeile geschrieben)

    ab jetzt kommt das Programmtechnische:

    VB.NET-Quellcode

    1. Dim meineDatenbank As New DEINSQLSCHEMA(My.Settings.ConnectionString)
    2. Dim meineZeilencounter as long= 0
    3. Dim meineAbfrage = (from db in meineDatenbank.meineDatenbanktabelle where db.deineTabellenspalte = textbox.text ).tolist
    4. for each wert in abfrage
    5. meineZeilencounter =deindatagrid.rows.add
    6. schreibe_daten_ins_datagrid(wert, meineZeilencounte)
    7. next



    ============

    VB.NET-Quellcode

    1. private sub schreibe_daten_ins_datagrid(byval dein_eintraagsitem as meineDatenbanktabelle, byval meinzeilencount as long)
    2. deindatagrid.Rows(meinzeilencount ).cells("DeindatagridZellenname").value = dein_eintraagsitem.deineTabellenspalte)
    3. deindatagrid.Rows(meinzeilencount ).cells("DeindatagridZellenname_2").value = dein_eintraagsitem.deineTabellenspalte2)
    4. ....
    5. end sub