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 ?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...