tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1019
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ademo ademo ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    11
    Hallo zusammen

    Ich möchte gerne eine xml datei auf meiner Webseite in meine SQL Datenbank importieren. Da ich noch nicht so viel Erfahrung hab mit C# weiss nicht genau wie ich das anstellen soll.


    Ich hoffe das mir da jemand weiter helfen kann.

    lg ademo

    was ich gerne machen würde:

    1. Button mit welchem der Import gestartet werden soll
    2. XML Datei: Bezug.xml
    ca 20'000 Einträge pro Jahr kommen ca 2000-4000 neue dazu.

    Auszug aus der xml Datei:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <root>
        <IDs ID ='1'>
            <IstNR">55400</IstNR>
            <BezugNR>38000</BezugNR>
        </IDs>
        <IDs ID="2">
          <IstNR>10005</IstNR>
          <BezugNR>45750</BezugNR>
        </IDs>
    </root>

    3. sql Tabelle

    Tabelle: CoNummerAbgleich

    Spalten: CoNummer < --- IstNR
    wieCoNummer <--- BezugNR
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi und herzlich Willkommen auf tutorials.de

    Du könntest deine Xml-Datei in ein DataSet einlesen und dieses dann in die Tabelle in die Datenbank übertragen.
    Alternative:
    Via XmlDocument oder XmlReader einlesen und die Daten dann "von Hand" mit Hilfe SqlCommand usw. in die Datenbank schreiben
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    ademo ademo ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    11
    hallo Nico

    ich habe die tage ein wenig im google gesucht aber leider keine gute anleitung gefunden nur Anlehnungen wie es so ungefähr funktionieren soll. ich glaub das mit dem xmlReader und sql comand würde sehr viel zeit in Anspruch nehmen.
    Ich glaube eine Effiziente Lösung wäre "BULK INSERT" aber bis jetzt bin ich noch nicht genau gestiegen wie das geht.
    Hast du die Methode mit DataSet schon mal verwendet um eine xml datei in sql zu importieren? könntest du mir eventuell sagen wie ich das machen müsste?

    lg ademo
     

  4. #4
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Entweder du importierst sie direkt zum Beispiel mit den DataTransformationServices oder du schaust dir mal Linq to XML an. Da könnte dir dann das hier helfen http://code-inside.de/blog/2008/02/2...l-daten-lesen/
     

  5. #5
    ademo ademo ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    11
    ich habe nun eine Lösung gefunden die funktioniert.Es geht auch sehr schnell hab mal einen test mit 10'000 Einträgen gemacht das ging ca 5sec.
    jedoch hab ich nun noch das Problem das ich einen Fehlermeldung bekomme wen die Daten schon in der Datenbank sind.



    "Violation of PRIMARY KEY constraint 'PK_CoNummerAbgleich'. Cannot insert duplicate key in object 'dbo.CoNummerAbgleich'.
    The statement has been terminated."

    wie kann ich die verhindern?


    was ich bis jetzt hab:

    Bezug.xml

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?xml version='1.0' encoding='iso-8859-1'?>
    <root>
        <Element>
            <IstNR>99500</IstNR>
            <BezugNR>98500</BezugNR>
        </Element>
        <Element>
          <IstNR>105500</IstNR>
          <BezugNR>104500</BezugNR>
        </Element>
    </root>

    +

    XMLtoSQL.dbml

    +

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Xml.Linq;
     
    public partial class Import : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
     
            XDocument xml = XDocument.Load("\\Users\\Chihyu\\Projekte\\spy-glass_1_0\\Bezug.xml");
            XMLtoSQLDataContext db = new XMLtoSQLDataContext();
     
            var xmlbloggers = from b in xml.Descendants("Element")
                              orderby b.Element("IstNR").Value ascending
                              select new CoNummerAbgleich
                              {
                                  CoNummer = b.Element("IstNR").Value,
                                  wieCoNummer = b.Element("BezugNR").Value,
                                  
                              };
     
            db.CoNummerAbgleich.InsertAllOnSubmit(xmlbloggers);
            db.SubmitChanges();  
        }
    }
     

Ähnliche Themen

  1. SWF in FLA importieren...
    Von MasterofGIGA im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 25.11.07, 14:10
  2. .max in c4d importieren?
    Von whitelinelikker im Forum Cinema 4D
    Antworten: 15
    Letzter Beitrag: 06.11.07, 23:39
  3. XML in XML importieren
    Von XChris im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 05.11.07, 13:54
  4. externe swf datein importieren aber nicht importieren
    Von michback im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 08.04.05, 02:46
  5. SWF importieren
    Von Bigbutcher im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 30.06.02, 22:10