Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

wäre ein dataview nicht irgendwie doppelt gemoppelt??

ich dachte das würde auch einfacher gehen

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

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.

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?

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!

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.