Announcement

Collapse
No announcement yet.

Webservice: DataSet speichern

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

  • Webservice: DataSet speichern

    Hallo Profis,

    ich habe einen Webservice geschieben der mir ein auf die Get_Daten Methode ein DataSet zurückgibt. Wie kann ich jetzt diese Daten in eine Access-Datenbank schreiben. Es soll eigendlich nur ein Button auf der WebSite sein der die Daten vom Webservice holt und in die Accessdatenbank schreibt/hinzufügt/editiert. Habt ihr vielleicht nen Link oder nen CodeSchnipsel für mich??

    Das DataSet wird erfolreich in einem GridView angezeigt.

    Liebe Grüße

    Chris
    Zuletzt editiert von gfoidl; 11.11.2010, 16:19. Reason: Titel angepasst

  • #2
    Hallo,

    so wie in ADO.net ff. beschrieben.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Schickt man denn wirklich DataSets über einen WebService?

      Comment


      • #4
        Habs mal mit den Tipp versucht aber ich komm so garnicht weiter. Bin ich denn auf dem richtigen Pfad oder aufm Holzweg? Ausgeführt wird das ganze ohne Probleme aber in der mdb kommt nix an. Ich erhalte keine Fehlermeldung.


        Code:
        OleDbConnection accesscon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TextAccess.mdb");
                Chris_Webservice.Chris_Webservice Webservice = new Chris_Webservice.Chris_Webservice();
        
                DataSet dsDaten = new DataSet();
                dsDaten = Webservice.Get_Daten();
        
                OleDbDataAdapter daDaten = new OleDbDataAdapter();
        
                daDaten.SelectCommand = new OleDbCommand("SELECT * FROM Tab_Test1", accesscon);         
               
                daDaten.Update(dsDaten, "Daten");

        Comment


        • #5
          Hallo,

          ich kenn mich mit DataSets nicht aus. Aber eine andere Frage: Musst/willst du es mit DataSets machen? Sonst gäbe es mit dem ADO.net DataService (.net 4.0) ein elegante Alternative.


          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #6
            Sind den Daten in dem Dataset das du holst den auch geändert?

            Einfach aus der einen Datenbank lesen und in einer andere schreiben(unabhängig davon ob ein Webservice dazwischenliegt) ist nicht vorgesehen. Oder anderes gesagt Datatables/Dataset und entsprechende Dataadapter sind nicht als Datapump gedacht.

            Wenn du aus einer Datanbank lesen und in eine andere schreib willst musst du zumindest den RowState der Rows in den enthalten Datatables entsprechend ändern. Das geht aber nur halbwegs wenn das in der Zieldatenbank alles neue Daten sind( also du den Rowstate auf Added setzt). Einen sinnvollen Merge mit Daten die bereits in deiner Zieldatenbank vorhanden sein können also gezielt entweder ein Insert oder Update ausgeführt werden soll wird so ohne weiteres nicht gehen.

            Comment


            • #7
              Nee muss net sein, habs halt nur so hinbekommen. DataService, werd ich mal googlen, vielleicht bringt mir das was. Muss einen SQL Server (hinter dem WebService) mit der lokalen AccessDB syncronisieren. Danke für deine Unterstützung, ich werd mal google bemühen ...

              chris

              Comment


              • #8
                Hallo,

                muss auf die Datenbank hinter dem Webserive unbedingt mit dem Webserivce zugegriffen werden? Sonst wäre das SyncToy eine noch praktischere Alternative.


                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  @ Ralf Jansen

                  Genau das hatte ich vor. Wenn ich nun geänderte und neue Daten durch ja/nein Felder kennzeichne, im SQL String nur die einen oder anderen auswähle, dann könnte ich die mit dem richtigen Rowstate kennzeichnen. ISt das in deinen Augen ne Möglichkeit? Hast du nen Codeschnipsel für das setzen des RowStates?

                  Danke erstmal für deinen Hinweis.

                  @ gfoidl

                  Leider ist das so die Vorgabe. SQL - Webservice - Access - Anwendung --> zu einem Späteren Zeitpunkt soll die Anwendung nicht mehr auf Access sondern nur noch auf den Webservice - SQL zugreifen.



                  Chris
                  Zuletzt editiert von gfoidl; 11.11.2010, 23:05. Reason: Zusammengeführt

                  Comment


                  • #10
                    Hast du nen Codeschnipsel für das setzen des RowStates?
                    Nö, das solltest du auch so hinkriegen. Pseudocode wäre.

                    1.) Über die Datatables im Dataset iterieren, oder eben die 1. benötigte Datatable im Dataset auswählen.
                    2.) Über die Rows in der Datatable iterieren.
                    3.) An den Rows dann jeweils SetModified (für geändert) oder SetAdded (für neu) aufrufen.

                    Comment


                    • #11
                      @ Ralf Jansen

                      Danke, das hat schon geholfen. Der Hinweis hat funktioniert. Bin wieder guter Dinge...


                      Liebe Grüße Chris

                      Comment

                      Working...
                      X