Announcement

Collapse
No announcement yet.

Füllen einer Cbo mit Tabellennamen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Füllen einer Cbo mit Tabellennamen

    Einen schönen guten Morgen zusammen,
    ich habe mir folgende Aufgabenstellung gegeben.
    Auslesen aller Tabellen einer DB in eine Combobox und nach der Auswahl, den Inhalt der Tabellen anzeigen.
    Mit einer Verbindung zu einer *.mdb DB funktioniert meine vorgehensweise auch. Nun möchte ich dies auch noch auf eine Mobile DB (*.sdf) anwenden und promt funktionert nichts mehr.

    Hier mein Codeausschnitt:

    Code:
     sdfconn = New SqlServerCe.SqlCeConnection("Data Source=" & strDBPfad & "\" & strDBName)
     
     Dim sdfsql = New SqlServerCe.SqlCeCommand("Select * from Mitarbeiter")
      Dim ds As New DataSet
    
                ' ## Datenbank öffnen
                sdfconn.Open()
             
                ' Füllen der Combobox2
                Dim dt As DataTable
                Try
                    dt = sdfconn.GetSchema
    
                    '  DisplayData(dt)
                    ComboBox2.DataSource = dt
                    ComboBox2.DisplayMember = "TABLE_NAME"
                Finally
    
                End Try
                sdfconn.Close(
    Ich bekomme jedesmal bei der Methode GetSchema eine Fehlermeldung, dass diese nicht unterstützt wird.
    Aber ich bekomme die Methode doch auch zur Auswahl angezeigt.

    Bitte Dringend um Unterstützung
    Danke
    Krebsbachbub

  • #2
    Dass die Methode angezeigt wird, hat nichts damit zu tun, ob die dahinterliegende Funktionalität auch durch die externe Ressource abgedeckt wird. SqlCeConnection ist eine Ableitung von System.Data.Common.DbConnection welche die Methode GetSchema bereits implementiert/vorschreibt.

    Eine Lösung solltest du die INFORMATION_SCHEMA Views abfragen. Informationen hierzu findest du unter anderem hier.
    .NET GUI - DIE Community für GUI-Entwickler

    Living.NET - Blog :: Live Blog :: .NET Casts

    Hol' dir jetzt dein kostenloses .NET BlogBook.

    Comment


    • #3
      Danke für die schnelle Antwort,
      aber ich kapier das irgendwie net.
      Wie kann ich einen Select-Befehl einbinden, wenn ich noch gar keinen Tabellennamen habe?
      Wenn dies trotzdem funktioniert, wie binde ich das dann ein????

      Gruß
      Krebsbachbub

      Comment


      • #4
        Naja, du musst ja nur die eine View abfragen. Diese enthält die Tabellennamen. Mit diesen kannst du dann weiterarbeiten.
        .NET GUI - DIE Community für GUI-Entwickler

        Living.NET - Blog :: Live Blog :: .NET Casts

        Hol' dir jetzt dein kostenloses .NET BlogBook.

        Comment


        • #5
          Naja, irgendwie sitze ich gerade auf der Leitung!!!

          Habe es folgender maßen versucht:
          Code:
          Dim sdfsql = New SqlServerCe.SqlCeCommand("Select * from information_Schema ", sdfconn)
                         
           dt = sdfsql
           
            ComboBox2.DataSource = dt
          Aber irgendwie!!!???

          Comment


          • #6
            Kommt da nichts zurück? Oder bekommst du eine Exception? Ich kann es leider hier nicht austesten, mangels einer SQL Server CE Instanz.

            Schon nach Code Snippets via Google gesucht?
            .NET GUI - DIE Community für GUI-Entwickler

            Living.NET - Blog :: Live Blog :: .NET Casts

            Hol' dir jetzt dein kostenloses .NET BlogBook.

            Comment


            • #7
              Es kommt die Fehlermeldung, dass das Comand nicht in die Datatable umgewandelt werden kann und wenn wenn ich das SQL-Statement direkt der cbo-Box als DataSource zuweise, kommt die Fehlermeldung dass dies nur mit einer IList geht??

              Comment


              • #8
                Aso, Moment. Hab mir deinen Source nicht angesehen. Natürlich kannst du ein Objekt vom Typ Command nicht ein Objekt vom Typ DataTable casten. Mach mal so:
                Code:
                Dim sdfsql = New SqlServerCe.SqlCeCommand("Select * from information_Schema ", sdfconn)
                
                Dim adapter as SqlServerCe.SqlCeDataAdapter
                adapter = New SqlServerCe.SqlCeDataAdapter(sdfsql)
                Dim ds as New DataSet
                adapter.Fill(ds)
                
                ComboBox2.DataSource = ds
                ComboBox2.DataBind()
                Ist jetzt zwar schnell ohne IDE runtergeschrieben und ich hoffe, dass das so von SqlCe unterstützt wird.
                .NET GUI - DIE Community für GUI-Entwickler

                Living.NET - Blog :: Live Blog :: .NET Casts

                Hol' dir jetzt dein kostenloses .NET BlogBook.

                Comment


                • #9
                  Es kommt immer die Fehlermeldung: DataTabel ist nicht vorhanden [infromation_Schema]

                  combobox2.DataBind() geht auch nicht --> Eigenschaftswert muss der Eigenschaft zu gewiesen werden ???

                  Gruß
                  Krebsbachbub

                  Comment


                  • #10
                    Wenn ich den SQL-Befehl so gestallte:

                    Select * from information_Schema.Tables

                    erscheint in der ComboBox2 folgender Text:

                    System.Data.DataViewManager ListItem Typ Descriptor


                    Kannst du was damit anfangen??

                    Comment


                    • #11
                      Mach mal ein "SELECT * FROM TABLES"
                      .NET GUI - DIE Community für GUI-Entwickler

                      Living.NET - Blog :: Live Blog :: .NET Casts

                      Hol' dir jetzt dein kostenloses .NET BlogBook.

                      Comment


                      • #12
                        Bringt wieder die Fehlermeldung: Tabelle [Tables] konnte nicht gefunde werden

                        Comment


                        • #13
                          Hallo zusammen hier noch mal der gesammte Code, wie er nicht funktioniert.

                          Code:
                          sdfconn = New SqlServerCe.SqlCeConnection("Data Source=" & strDBPfad & "\" & strDBName)
                          
                           ' ## Datenbank öffnen
                           sdfconn.Open()
                                  
                           ' ## Füllen der Combobox2
                           Dim sdfsql = New SqlServerCe.SqlCeCommand("Select * from inforamteion_Schema.tables  ", sdfconn)
                          
                          Dim adapter As SqlServerCe.SqlCeDataAdapter
                          adapter = New SqlServerCe.SqlCeDataAdapter(sdfsql)
                          
                               Dim ds As New DataSet
                               adapter.Fill(ds)
                          
                             ComboBox2.DataSource = ds
                                  
                          sdfconn.Close()
                          Hat irgend einer eine Idee, was ich hier falsch mache. Denn es kommt immer nur System.Data.DataViewManagerListItem Typ Description in der Combobox.

                          Danke
                          Krebsbachbub

                          Comment


                          • #14
                            Eventuell installiere ich mir in den nächsten Tagen die SQL Server CE, dann kann ich dir besser weiterhelfen.

                            Zu deinem Source. "inforamteion" solltest du korrekt schreiben.
                            .NET GUI - DIE Community für GUI-Entwickler

                            Living.NET - Blog :: Live Blog :: .NET Casts

                            Hol' dir jetzt dein kostenloses .NET BlogBook.

                            Comment


                            • #15
                              Oh, durch das viele Probieren, hat sich der Fehler wohl eingeschlichen.

                              Ich finde es trotzdem komisch. Hat denn noch keiner mit einer mobilen DB gearbeitet???
                              Wenn ich mir Webcast und so anschaue ist das alles voll einfach-->> haha

                              Vielleicht ist es auch ganz einfach, aber ich danke jetzt schon im voraus wenn du mir helfen kannst.

                              Gruß
                              Krebsbachbub

                              Comment

                              Working...
                              X