vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Spalte durchsuchen 
Autor: Vegas85
Datum: 19.09.16 22:52

Hallo,

Habe den Fehler gefunden, hatte die falsche DataSource

Läuft auch soweit fast wie es soll. Nur wird leider der Filter nicht richtig ausgeführt.

Bei "Art >= 1050 AND Art <= 1055" wird nach der 1055 einfach weiter in die Spalte Kato geschrieben.

Woran könnte das liegen?

Ist es auch möglich mehre Filter auf die gleiche DataSource anzuwenden? bzw. geht das auch einfacher, denn ich habe zwar in meinem Code diesen schon angewendet aber sieht nicht wirklich elegant aus.

Imports System
Imports System.IO
Imports System.Net
Imports System.Text
 
Public Class Form1
 
    Dim ds As New DataSet
    Dim dt1, dt2, dtout As cDataTableCSV
 
    Private Function LoadCSV(file As String) As cDataTableCSV
        'CSV Datei laden - ggf. Schlüssel festlegen
        Dim dt As New cDataTableCSV
        dt.TableName = IO.Path.GetFileNameWithoutExtension(file)
        If Not dt.LoadFile(file, System.Text.Encoding.Default) Then Return _
          Nothing
        'dt.PrimaryKey = New DataColumn() {dt.Columns(0)}
        Return dt
    End Function
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
      Button1.Click
 
        Dim file_open As New OpenFileDialog
        file_open.Filter = "csv-dateien|*.csv"
        file_open.AddExtension = True
 
        If file_open.ShowDialog = DialogResult.OK Then
 
            ds.Tables.Clear()
            ds.Tables.Add(LoadCSV(file_open.FileName))
 
 
            If Not ds.Tables.Count = 1 Then
                MessageBox.Show("Eine Datei konnte nicht gelesen werden")
                Exit Sub
            End If
 
            'Spalten in Ausgabedatei erstellen
            dtout = New cDataTableCSV
 
            dtout.Columns.Add("Mark") : dtout.Columns.Add("Art") : _
              dtout.Columns.Add("Kato")
 
            'Spalteninhalte einer Zeile als Zeichenfolge kombinieren
            Dim line As New System.Text.StringBuilder
 
            'Zeilen als Zeichenfolge kombinieren
            Dim text As New System.Text.StringBuilder
 
            dtout.Rows.Add({"Kato"})
 
            Try
                For rowindex As Integer = 1 To ds.Tables(0).Rows.Count - 1
                    'zusätzliche Zeile einfügen
                    Dim row As DataRow = ds.Tables(0).Rows(rowindex)
                    'Ausgabedatensatz aufbauen
                    Dim orow As DataRow = dtout.NewRow
 
                    orow("Mark") = row("SP_0")
                    orow("Art") = row("SP_2")
 
                    'Filter anwenden
                    Dim bs As New BindingSource
                    Dim bs2 As New BindingSource
 
                    bs.DataSource = dtout
                    bs2.DataSource = dtout
 
                    'Datensatz-Filter setzen
                    bs.Filter = "Mark = 'Haus' AND Art >= 1050 AND Art <= 1055"
                    bs2.Filter = "Mark = 'Wetter' AND Art >= 232334 AND Art" & _
                      "<= 232345"
 
                    'Gefilterte Datensätze bearbeiten
                    For i As Integer = 0 To bs.Count - 1
                        Dim r As DataRow = DirectCast(bs(i), DataRowView).Row
                        orow("Kato") = "selected"
                    Next i
 
                    For i As Integer = 0 To bs.Count - 1
                        Dim r As DataRow = DirectCast(bs2(i), DataRowView).Row
                        orow("Kato") = "Hallo"
                    Next i
 
                    'Filter entfernen
                    bs.Filter = ""
 
                    ' Tabelle Füllen 
 
                    dtout.Rows.Add(orow)
 
                    'Ausgabe-Datensatz als Text aufbereiten
                    line.Clear()
                    For i As Integer = 0 To orow.ItemArray.Length - 1
                        line.Append(orow(i).ToString & ";")
                    Next i
 
 
                Next rowindex
            Catch ex As Exception
                MessageBox.Show("Abbruch - Fehler: " & ex.Message)
                Exit Sub
            End Try
 
            'Ausgabe als Text anzeigen in DGV
            DataGridView1.DataSource = dtout
 
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Spalte durchsuchen2.412Vegas8504.09.16 21:19
Re: Spalte durchsuchen1.914Manfred X04.09.16 23:37
Re: Spalte durchsuchen1.678Vegas8505.09.16 01:04
Re: Spalte durchsuchen1.689Vegas8505.09.16 01:04
Re: Spalte durchsuchen1.607Manfred X05.09.16 09:51
Re: Spalte durchsuchen1.587Vegas8505.09.16 10:18
Re: Spalte durchsuchen1.635Manfred X05.09.16 11:14
Re: Spalte durchsuchen1.627Vegas8505.09.16 11:52
Re: Spalte durchsuchen1.559Vegas8518.09.16 23:57
Re: Spalte durchsuchen1.605Vegas8519.09.16 22:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel