Zum Inhalt springen

Datensatz in DataSet suchen und ausgeben


Empfohlene Beiträge

Geschrieben

Hallo Leute,

ich habe das Gefühl das im Internet dazu schon was stehen müsste, leider habe ich nichts gefunden. Vielleicht könnt ihr mir helfen!

Ich schreibe eine Anwendung mit VB.net das auf eine Access-DB zugreift.

Die Daten lade ich mit einem DataSet über DataBinding in meine Form. Nun möchte ich nur einen bestimmten Datensatz anzeigen lassen. Der zu suchende Wert wird aus einer Text-Datei ausgelesen.

Wie bekomme ich das hin das dieser Datensatz angezeigt wird?

Bisher finde ich nur Antworten mit einem DataView, das muss doch aber auch ohne gehen.

Grüße

Informatikerin

Geschrieben (bearbeitet)

Das ist zwar etwas unorthodox aber so könntest du ohne ein dataview nach bestimmten inhalten filtern:


'Erster dt wird mit gesamten inhalt der Abfrage befühlt

'Zweiter dt wird für die Ergebnisse erstellt

      Dim dt As New DataTable

        Dim dt2 As New DataTable

        Dim cmd As New SqlServerCe.SqlCeCommand

        cmd.Connection = Con

        cmd.CommandText = "SELECT * From test"

        Dim ada As New SqlServerCe.SqlCeDataAdapter(cmd)

        ada.Fill(dt)

        For i As Integer = 0 To dt.Rows.Count - 1

            Dim seachpattern As String = dt.Rows(i)("Inhalt").ToString()

'Da hier nur eine Column existiert wird auch nur dieser wert abgefragt

'und in den searchpatternstring übergeben.

            If seachpattern.Contains("test") Then

'wenn der string den in klammern gesetzten wert enthällt,

'dann wird die entsprechende row dem ergebniss dt hinzugefügt

                dt2.Rows.Add(dt.Rows(i))

            End If

        Next

alternativ wenn du mehr columns besitzt und alle auch durchsuchen willst, rate ich dir in diesem Falle ein Array, beispielsweise so:

.......

     For i As Integer = 0 To dt.Rows.Count - 1

    Dim seachpattern(dt.Rows.Count) As String

            For i2 As Integer = 0 To dt.Columns.Count

                seachpattern(i2) = dt.Rows(i)(i2).ToString()

            Next

'hier dann die weitere Inhaltsspezifische abfrage des arrays ........

        Next

Hatte jetzt leider keine Zeit zum testen des zweiten code-teils....

Bearbeitet von Gateway_man
Geschrieben
wäre ein dataview nicht irgendwie doppelt gemoppelt??

Eigentlich nicht, da du in einem DataView auch bestimmte Spalten ausblenden kannst usw.

Notfalls kannst du es auch mit DataTable.Select mal probieren.

Geschrieben

ok ok, überredet, vielleicht nehme ich dann doch das DataView...

            

Dim datav As New DataView

datav.Table = Me.ProzessdatenbankDataSet.Prozessdaten_2641


Dim intIndex As Integer

datav.Sort = "Rezept-Nr"

intIndex = datav.Find(rezeptnr)

Me.BindingContext(datav).Position = intIndex

So siehts momentan aus.

Nur wie bekomme ich jetzt die Textfelder die mit DataBinding angebunden sind dazu die Werte anzuzeigen? Muss ich jedem sagen das es jetzt die Daten vom DataView ziehen soll?

Geschrieben

Mein Workaround:


Dim datav As New DataView

datav.Table = Me.ProzessdatenbankDataSet.Prozessdaten_2641


Dim intIndex As Integer

datav.Sort = "Rezept-Nr"

intIndex = datav.Find(rezeptnr)

Me.BindingContext(datav).Position = intIndex


intIndex = intIndex + 1


Me.BindingNavigatorPositionItem.Text = intIndex


Prozessdaten_2641BindingNavigator.PositionItem.PerformClick()

Prozessdaten_2641BindingNavigator.PositionItem.Select()

Me.Activate()

Danke für eure Mithilfe!

Geschrieben

Public Shared Function DV_Sonuc(sql As String) As DataView

Dim sqlAdapter As New MySqlDataAdapter(sql, sqlBaglanti)

Dim ds As New DataSet()

sqlAdapter.Fill(ds)

sqlBaglanti.Close()

Return ds.Tables(0).DefaultView

End Function

thanx ?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...