NET VB Excle Datei in Gridview einlesen OHNE Duplikate

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    NET VB Excle Datei in Gridview einlesen OHNE Duplikate

    Erstmals hallo
    zusammen, bin recht neu hier J

    Mit dem Thema VB in Verbindung von .Net befasse ich mich erst seit kurzem.
    Wobei ich das System super finde, leider fehlt es halt noch etwas um die
    Materie richtig ausnutzen zu können…

    Nun komme ich eben zu meiner Frage, wo ich an meine Grenzen derzeit Stoße…..

    Würde gerne eine vorhandene Excel xlsx Datei in ein Gridview laden, und das dann in
    Html anzeigen lassen. Das habe ich schon mit der Hilfe des Internetes ganz gut
    geschafft J

    Kann da auch zwischen den einzelnen Arbeitsblättern in der xlsx Datei wählen,
    also alles super!

    Mein Problem ist das in der genannten Datei oft gleiche Werte (Duplikate) sind
    und diese dann logischer Weisse auch in HTML angezeigt werde.

    Mein Wunsch wäre es eben das beim Darstellen des Gridview die Dopplungen nicht
    angezeigt werden würden. Das kann anhand der ersten Spalte passieren da, da
    immer eine IP Adresse drinsteht.

    Hier mal mein Code zum einlesen ins Gridview:

    VB.NET-Quellcode

    1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    2. ' Definition von Pfad
    3. pfad = "~/App_Data/2.xlsx"
    4. Dim DBConnection = New OleDbConnection(
    5. "Provider=Microsoft.ACE.OLEDB.12.0;" &
    6. "Data Source=" & Server.MapPath(pfad) & ";" &
    7. "Extended Properties=""Excel 8.0;HDR=Yes""")
    8. DBConnection.Open()
    9. Dim SQLString As String = "SELECT * FROM [10 - Events$]"
    10. Dim DBCommand = New OleDbCommand(SQLString, DBConnection)
    11. Dim DBReader As IDataReader = DBCommand.ExecuteReader()
    12. GridView1.DataSource = DBReader
    13. GridView1.DataBind()
    14. DBReader.Close()
    15. DBConnection.Close()
    16. End Sub




    Wäre super wenn mir da jemand helfen könnte
    oder nen Ansatz geben kann wie ich da weiter machen könnte. Bestenfalls mit
    Beispiel :)

    Beste Grüße

    Peter

    *Topic verschoben*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „peterjura“ ()

    Hab es schon probieren können, die Idee war gut! Aber leider steckt der Teufel ja im Detail, liegt auch an meiner nicht ganz richtigen Formulierung.....

    Problem ist das ich in der jeweiligen Zeile auch ein Zeitstempel habe, somit ist die Zeile nicht immer gleich.

    Die Überprüfung muss sich immer auch die erste Spalte der jeweiligen Zeile beziehen. Nur anhand dieses Kriterium darf er Filtern...
    Ist in diesem Fall eine IP Adresse.
    Die Excel Datei lässt sich nicht beereinigen, da diese automtisch geeneriert wird.

    Schaut in etwa so aus:

    IP
    Fehler
    Zeit
    Nummer
    192.168.2.2
    3222
    13.12.18-15.45
    0382
    192.168.2.2
    3222
    13.12.18-16.01
    0382

    Mein ziel wäre es eben das der Eintrag nur einmal im Frontend angezeigt wird.... Also Filterung anhand der Ip....

    Viele Grüße PJ
    Vorschlag meinerseits:

    1. Excel in DataTable importieren
    2. Weitere DataTable instanzieren
    3. Per Schleife durch die "alte" DataTable gehen
    4. Je Schleifendurchgang prüfen ob es bereits identische Daten in der neuem DT gibt
    5. Falls nicht, Daten der neuen DT hinzufügen
    6. Die neue DT dem DataGrid als DataSource zuweisen

    Eigentlich alles recht simpel zu lösen :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    ....... Dake für denn guten Tip.....

    Wie gesagt bin da noch recht neu, aber die Vorgehensweise macht gut Sinn für mich :-=


    Danike :)

    Mal schauen ob ich es so zum lauffen bekomme...

    Könntest mir da nen kleinen Anstaz als Hilfestellung noch geben?


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

    peterjura schrieb:

    Könntest mir da nen kleinen Anstaz als Hilfestellung noch geben?


    Klar. Mal den Programm Ablauf auf ein Blatt Papier. Das ist kein Witz. Mach ich bei komplexen Themen gerne. Wenn du es grafisch hinbekommst ist der Code nachher nur noch Syntax...

    Wenn du das gemacht hast und hilfe beim Syntax brauchst, poste das Bilde und wo du nicht weiter kommst.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hallo HenryV, danke für deine Mühe die du reinsteckst :-), ja hast recht als VB- Projeckt funktioniert das super!

    Diese App, nenne es jatzt mal einfach so läuft bei mir als App.aspx.vb und App.aspx Datei, also als asp.net . Müsste doch auch VB.net sein....
    Hoffe schreibe da jetzt kein Schmarn zusammen und es ist verständlich was ich meine......

    Aber genau so im Prinzip wie es als VB progi funktioniert ist es gemeint, Perfekt :) !!!!! --> Einfach TOP"!

    Muss es jetzt nur noch schaffen das es als aspx Datei lauffähig wird.....

    Gegen kleine hilfe wäre ich da nicht böse, oder zumindest einen Denkanstoß

    :)



    ........... keiner eine Idee. kann doch eigentlich nicht so schwer sein, sehe gerade denn Wald vor lauer Bäume nicht


    Die Farbe "Rot" ist der Moderation vorbehalten => Farbe entfernt. Beiträge zusammengefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Was ist aus meinem Vorschlag geworden?

    mrMo schrieb:


    1. Excel in DataTable importieren
    2. Weitere DataTable instanzieren
    3. Per Schleife durch die "alte" DataTable gehen
    4. Je Schleifendurchgang prüfen ob es bereits identische Daten in der neuem DT gibt
    5. Falls nicht, Daten der neuen DT hinzufügen
    6. Die neue DT dem DataGrid als DataSource zuweisen
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ja ok, aber wo genau steckst du fest? Nur weil du einen Teil nicht hin kriegst, musst du ja nicht gleich die Flinte ins Korn werfen...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Das stand so nicht in meinem Vorschlag. Mein Ansatz setzt an bevor Daten ins Grid kommen. Lade die Daten nicht ins Grid, sondern in die DataTable. Ganz am Ende kommen die dann ins Grid.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    . ok werde ich mal wieder daran machen und berichten...



    habe das Gridview jetzt mit folgenden code in die Datatab kopiert

    VB.NET-Quellcode

    1. tab1 = GridView1.DataSource


    wie kann ich die Datatab jetzt im View anzeigen lassen? um sicher zustellen das diese mit werten gefüllt ist?

    Beiträge zusammengefügt. Für nachträgliche Informationen bitte die "Bearbeiten"-Funktion benutzen! ~Thunderbolt

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

    mrMo schrieb:

    6. Die neue DT dem DataGrid als DataSource zuweisen

    @peterjura: Das hast Du wohl falsch interpretiert.
    Wenn, dann musst Du es genau andersrum als bisher coden:

    VB.NET-Quellcode

    1. GridView1.DataSource = tab1

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.