Daten aus CSV-Datei auslesen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Daten aus CSV-Datei auslesen

    Hallo Zusammen,

    ich hoffe mir kann jemand helfen und das Thema passt in diese Kategorie.

    Ich bin Werksstudent und habe das Projekt von einen vorherigen Werksstudenten übernommen. Das Problem ist, dass das Projekt auf meinem PC nicht funktioniert und auf seinem schon.
    Er hat Visual Studio 2013 un ich 2015, aber gibt es da so große unterschiede???

    In dem Programm werden Daten aus einer CSV-Datei ausgelesen und in eine ListBox geschrieben. Das funktioniert allerdings nicht.
    Mit der Zeile

    Visual Basic-Quellcode

    1. TextBox1.Text = "test"

    wollte ich schauen ob und wie weit der Code ausgeführt wird. Ergebnis, ab der Zeile in der der StreamReader defininert wird der Code nicht mehr ausgeführt.

    Ich habe schon Programmiererfahrung, aber noch nicht mit VB und Visual Studio, deshalb hoffe mir kann hier jemand Helfen

    Danke schon mal

    Gruß
    Christoph


    Visual Basic-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2.  
    3. '----------Einlesen der CSV DATEI Datenbasis-----------
    4. Dim sqlcon As New SqlConnection
    5. Dim sqlcmd As New SqlCommand
    6. Dim sqlstring As String = ""
    7. Dim Spalte() As String
    8. Dim reader As StreamReader = New StreamReader("Data Source=(LocalDB)\v11.0;AttachDbFilename=U:\Documents\Visual Studio 2015\Projects\Fabian\TestListBoxDateineu.csv;Integrated Security=True", Encoding.Default)
    9. TextBox1.Text = "test"
    10. sqlcon.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=U:\Documents\Visual Studio 2015\Projects\Fabian\DatenbankSchlifflabor.mdf;Integrated Security=True"
    11. sqlstring = " Select * from Schliffdatenbank where Anlage = '" & ListBox2.SelectedItem & "' and Identnummer = '" & ListBox3.SelectedItem & "'"
    12. sqlcon.Open()
    13. sqlstring = "Truncate Table datenbasis"
    14. sqlcmd = New SqlCommand(sqlstring, sqlcon)
    15. sqlcmd.ExecuteNonQuery()
    Willkommen im Forum. :thumbup:

    BirdiFVZ schrieb:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ist VB.NET, nicht aber VB6.
    Ändere bitte den Thread-Titel.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Zum Problem: Im Startup funktioniert das Debugging des VisualStudios nicht.
    Also verlege den Form_Load-Code ins Form_Shown-Event zum Debuggen, dann solltest du weiterführende Fehlermeldungen kriegen.

    Naja - man siehts aber auch so: guck mal in der Doku nach, welche Bedeutung der string-Paremeter des Streamreader-Konstruktors hat.

    Kannst du VisualStudio insoweit bedienen, dass du die entsprechende Doku findest, im Objectbrowser? - Guck dir mal VisualStudio richtig nutzen (Google ist nicht deine Mami) an, da wird einiges angedeutet, wo man von selbst eiglich nicht so schnell drauf kommt.
    Der string-Parameter sieht eigentlich so aus:

    Visual Basic-Quellcode

    1. Dim reader As StreamReader = New StreamReader("U:\Documents\Visual Studio 2015\Projects\Fabian\TestListBoxDateineu.csv", Encoding.Default)


    so wie es im Code oben steht hab ich es von einem sqlcon.Connectionstring kopiert, weil ich ausprobieren wollte ob sich was ändert

    mit dem shown-event kommt folgende Fehlermeldung:


    Ein Ausnahmefehler des Typs "System.IO.DirectoryNotFoundException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Ein Teil des Pfades "U:\Documents\Visual_Studio_2015\Projects\Fabian\TestListBoxDateineu.csv" konnte nicht gefunden werden.


    Die Datei liegt sicher in dem Ordner und heißt sicher so (hab den Link und den Namen kopiert)

    BirdiFVZ schrieb:

    Die Datei liegt sicher in dem Ordner und heißt sicher so
    Probier das ganze mit nem OpenFileDialog, da kannst Du sicher sein, dass der richtige Pfad ankommt:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim reader As StreamReader
    3. Using dlg As New OpenFileDialog
    4. If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
    5. Return
    6. End If
    7. reader = New StreamReader(dlg.FileName, Encoding.Default)
    8. End Using
    9. ' mit reader was anstellen
    10. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich hab den OpenFileDialog ausprobiert, wird auch nichts angezeigt, dann hab ich es wieder sogemacht wie davor, jetzt wird kein Fehler mehr angezeigt...

    Dafür jetzt bei

    Visual Basic-Quellcode

    1. sqlcon.Open()


    Ein Ausnahmefehler des Typs "System.Data.SqlClient.SqlException" ist in System.Data.dll aufgetreten.

    Zusätzliche Informationen: Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL Network Interfaces, error: 26 - Fehler beim Bestimmen des angegebenen Servers/der angegebenen Instanz)


    Gibt es unterschiede bei der SQL-Server behandlung zwischen den Versionen 2015 community und 2013 express? Wie oben gesagt, das Programm lief bereits bei meinem Kollegen. Er hat es mit 2013 geschrieben und ich muss es auf meinem PC mit VS 2015 weiter machen...
    Verbindung kann ich herstellen, ich kann auch die Tabellen ansehen und bearbeiten
    er meckert nur bei wenn das Programm zu

    Visual Basic-Quellcode

    1. sqlcon.Open()


    kommt.

    ich kann auch mit einer query datenabfragen

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

    kannst auch ein neues Testprojekt machen, und die Datenbank-DAtei da drin per Solution-Explorer einbinden. Dann geht ein Assistent an, der eine funktionierende Connection zu erstellen versucht. In den Settings hat man dann einen gültigen Connectionstring wenn das geklappt hat.

    Und wenn das nicht klappt - wie gesagt, bei jedem PC kann immer was anneres mit der SqlServer-Installation sein.

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

    Vielen Dank für die Hilfe
    jetzt funktionierts
    :thumbsup:

    Visual Basic-Quellcode

    1. sqlcon.ConnectionString = "Data Source=(LocalDB)
    2. \MSSQLLocalDB;AttachDbFilename=G:\Locations_EU\COB\TF\TZ\10_Schweissen\12_Praktikanten_Diplomanten\Vogel_Christoph\Neuste Version 15_10 VB FABIAN\Fabian\DatenbankSchlifflabor.mdf;Integrated Security=True;Connect Timeout=30"


    Anscheinend braucht die 2015er version das Connect Timeout am ende, ansonsten ist es der selbe String wie davor...