vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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

ADO.NET / Datenbanken
Re: ComboBox / DataView / DataBinding 
Autor: Maywood
Datum: 27.02.05 11:29

>> Ich habe ein Formular mit mehreren ComboBoxen deren DataSource von verschiedenen DataViews gespeist werden. Dies funktioniert soweit auch alles (Navigation, DateBinding, ValueMember, DisplayMember, etc) bestens. Wenn ich allerdings einen RowFilter auf das DataView setzte zeigt er mir - sobald ich einen Datensatz weiterblättere - immer den ersten Datensatz an.

Also, ich habe einmal versucht dein Problem reproduzieren. Nur, leider kann ich dein Problem nicht so richtig nachvollziehen, egal nach oder vor dem setzen des Filters, ich kann mühelos navigieren. Für dieses kl. Bsp. habe ich ein kl. Access db mit 3 Tabelle erstellt:

users: beinhaltet Benutzerdaten
orders: Bestellungsdaten der Benutzer
product: Produktinformationen

Hier der Code, mit welchen ich versucht habe dein Problem nachzuvollziehen:
(Am Ende des Codes findest du eine Übersicht aller Tabellen)
 
Public Class Form1
    Inherits System.Windows.Form
 
'// Designerregion
    '// [..]
    Dim ds As Data.DataSet
 
    Private Sub fillDs()
        Dim cns As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
          "Source=X:\tmp\db.mdb;Persist Security Info=False"
        Dim cn As New Data.OleDb.OleDbConnection(cns)
        Dim sqlOrders As String = "SELECT * FROM orders ORDER BY id ASC"
        Dim sqlproduct As String = "SELECT * FROM product ORDER BY id ASC"
        Dim sqlUsers As String = "SELECT *, last_name + ', ' + first_name AS" & _
          "full_name " + _
                                 "FROM users ORDER BY id ASC"
        Dim da As Data.OleDb.OleDbDataAdapter
        ds = New Data.DataSet
 
        da = New Data.OleDb.OleDbDataAdapter(sqlUsers, cn)
        da.Fill(ds, "users")
 
        da = New Data.OleDb.OleDbDataAdapter(sqlproduct, cn)
        da.Fill(ds, "product")
 
        da = New Data.OleDb.OleDbDataAdapter(sqlOrders, cn)
        da.Fill(ds, "orders")
    End Sub
 
    Private Sub setDataSource()
        Me.DataGrid1.DataSource = ds.Tables("orders")
    End Sub
 
    Private Sub setBindings()
        With Me.ComboBox1 '// Users
            .DataSource = ds.Tables("users")
            .DisplayMember = "full_name"
            .ValueMember = "id"
            .DataBindings.Add("SelectedValue", ds.Tables("orders"), "user_id")
        End With
 
        With Me.ComboBox2 '// Orders
            .DataSource = ds.Tables("product")
            .DisplayMember = "product_name"
            .ValueMember = "id"
            .DataBindings.Add("SelectedValue", ds.Tables("orders"), _
              "product_id")
        End With
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        fillDs()
        setBindings()
        setDataSource()
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button3.Click
        '// pos <
        Me.BindingContext.Item(Me.DataGrid1.DataSource).Position -= 1
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        '// pos >
        Me.BindingContext.Item(Me.DataGrid1.DataSource).Position += 1
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button4.Click
        '// pos |<
        Me.BindingContext.Item(Me.DataGrid1.DataSource).Position = 0
    End Sub
 
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button5.Click
        '// pos >|
        Me.BindingContext.Item(Me.DataGrid1.DataSource).Position = _
          Me.BindingContext.Item(Me.DataGrid1.DataSource).Count
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        '// set filter 
        Me.ds.Tables("orders").DefaultView.RowFilter = "user_id = 2"
    End Sub
 
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button6.Click
        '// reset filter 
        Me.ds.Tables("orders").DefaultView.RowFilter = ""
    End Sub
End Class
 
'---------------------------
'table: "product"
'---------------------------
'id	| product_name
'---------------------------
'10	| product10
'11	| product11
'12	| product12
'13	| product13
'14	| product14
'15	| product15
'---------------------------
 
'---------------------------
'table: "orders"
'---------------------------
'id	| user_id | product_id
'---------------------------
'1 | 1 | 10
'2 | 1 | 11
'3 | 1 | 12
'4 | 2 | 13
'5 | 2 | 14
'6 | 3 | 10
'7 | 3 | 12
'---------------------------
 
'---------------------------
'table: "users"
'---------------------------
'id | last_name | first_name
'---------------------------
'1 | meier  | klaus
'2 | lustig | peter
'3 | müller | anton
'---------------------------
Alles funktioniert einwandfrei - wie erwartet. Du solltest vielleicht noch einmal deine Bindings überprüfen. Und, wieso verwendest du überhaupt zwei verschiedene DataSet's?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ComboBox / DataView / DataBinding2.189Schwabenernie21.02.05 15:07
Re: ComboBox / DataView / DataBinding1.462Maywood21.02.05 20:48
Re: ComboBox / DataView / DataBinding1.611Schwabenernie22.02.05 09:25
Re: ComboBox / DataView / DataBinding1.369Maywood22.02.05 20:56
Re: ComboBox / DataView / DataBinding1.278Schwabenernie24.02.05 13:29
Re: ComboBox / DataView / DataBinding1.349Maywood24.02.05 21:00
Re: ComboBox / DataView / DataBinding2.074Maywood27.02.05 11:29
Re: ComboBox / DataView / DataBinding1.487Schwabenernie01.03.05 10:46
Re: ComboBox / DataView / DataBinding1.382Maywood01.03.05 14:06
Re: ComboBox / DataView / DataBinding1.465Schwabenernie01.03.05 16:50
Re: ComboBox / DataView / DataBinding1.442Maywood01.03.05 21:56
Re: ComboBox / DataView / DataBinding1.360Schwabenernie03.03.05 09:30
Re: ComboBox / DataView / DataBinding1.401Schwabenernie08.03.05 16:37
Re: ComboBox / DataView / DataBinding1.464Maywood08.03.05 16: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