none
Xml ve okuma veri tabanına yazma RRS feed

  • Soru

  • e-ticaret projesi üzerinde çalışıyorum. Daha önce kullandıkları sistemi değiştirmek asp.net e geçmek istiyorlar. Fakat ürünleri tekrar tekrar eklemek istemiyorlar. Eski çalıştıkları firma yedekleri kayıtları xml ve excel olarak veriyor. Ürün kayıtlarını. Xml veri okuyup veritabanına istediğim sütuna kayıt ettirmem gerekiyor. İşlemleri nasıl gerçekleştirebilirim. Xml veri okuma yapabiliyorum fakat okuyup veri tabanına kayıt etmem lazım. Yardımlarınızı bekliyorum.
    25 Aralık 2017 Pazartesi 07:16

Yanıtlar

  • DataTable table= new DataTable();
    table.ReadXml("D:\test.xml");
    
    foreach (DataRow row in table.Rows)
    {
        using (SqlConnection connection = new SqlConnection("Bağlantı metnini buraya yazın..."))
        {
            //Kullanılan parametre sayısı hedef tablodaki kolon sayısına göre artabilir/azalabilir...
            using (SqlCommand command = new SqlCommand("INSERT INTO HedefTablo (Alan1, Alan2, Alan3) VALUES (@param1, @param2, @param3)", connection)) 
            {
                command.Parameters.AddWithValue("@param1", row[0].ToString()); //Hedef alanın veri tipi string ise...
                command.Parameters.AddWithValue("@param2", Convert.ToDecimal(row[1])); //Hedef alanın veri tipi decimal ise...
                command.Parameters.AddWithValue("@param3", Convert.ToDateTime(row[2])); //Hedef alanın veri tipi DateTime ise...
                command.ExecuteNonQuery();
            }
        }
    }



    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    25 Aralık 2017 Pazartesi 09:45

Tüm Yanıtlar

  • DataTable table= new DataTable();
    table.ReadXml("D:\test.xml");
    
    foreach (DataRow row in table.Rows)
    {
        using (SqlConnection connection = new SqlConnection("Bağlantı metnini buraya yazın..."))
        {
            //Kullanılan parametre sayısı hedef tablodaki kolon sayısına göre artabilir/azalabilir...
            using (SqlCommand command = new SqlCommand("INSERT INTO HedefTablo (Alan1, Alan2, Alan3) VALUES (@param1, @param2, @param3)", connection)) 
            {
                command.Parameters.AddWithValue("@param1", row[0].ToString()); //Hedef alanın veri tipi string ise...
                command.Parameters.AddWithValue("@param2", Convert.ToDecimal(row[1])); //Hedef alanın veri tipi decimal ise...
                command.Parameters.AddWithValue("@param3", Convert.ToDateTime(row[2])); //Hedef alanın veri tipi DateTime ise...
                command.ExecuteNonQuery();
            }
        }
    }



    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    25 Aralık 2017 Pazartesi 09:45
  • Teşekkürler. Çok işime yaradı.
    26 Aralık 2017 Salı 14:14
  • Hocam xml dosyadan bazı bilgileri okuyamıyorum.<title>, <description> bilgilerini okuyabiliyorum herhangi bir sıkıntı yok fakat."<g:price>" bu formatta tanımlanan bilgileri çekemiyorum. Verileri okuma kodum aşağıdadır. Yardımlarınızı bekliyorum 

    <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
      <item>
       <g:condition><![CDATA[new]]></g:condition>
       <g:id>8366</g:id>
       <g:mpn><![CDATA[BEFRY458]]></g:mpn>
       <title><![CDATA[iPhone 7 / 8 Cüzdanlı Kapaklı Sewed Wallet Kılıf]]></title>
       <g:brand><![CDATA[]]></g:brand>
       <g:availability><![CDATA[in stock]]></g:availability>
       <g:additional_image_link><![CDATA[http://st1.myideasoft.com/idea/cb/91/myassets/products/366/beyaz-2.JPG?revision=1515100254]]></g:additional_image_link>
       <g:additional_image_link><![CDATA[http://st1.myideasoft.com/idea/cb/91/myassets/products/366/beyaz-1.JPG?revision=1515100254]]></g:additional_image_link>
       <g:additional_image_link><![CDATA[]]></g:additional_image_link>
       <g:image_link><![CDATA[http://st2.myideasoft.com/idea/cb/91/myassets/products/366/beyaz.JPG?revision=1515100251]]></g:image_link>
       <description><![CDATA[<div>Ürün açıklama</div>]]></description>
       <link><![CDATA[http://www.cepkanyon.com/urun/iphone-7-8-cuzdanli-kapakli-sewed-wallet-kilif]]></link>
       <g:product_type><![CDATA[KILIFLAR > Deri Kılıflar]]></g:product_type>
       <g:price>39.90 TRY</g:price>
       <g:gtin><![CDATA[]]></g:gtin>
       <g:google_product_category><![CDATA[]]></g:google_product_category>
      </item>

     private void bilgilerigetir()
        {

            XmlTextReader okuyucu = new XmlTextReader("urunler.xml");
            XmlDocument dokuman = new XmlDocument();
            dokuman.Load(okuyucu);

            XmlNode rss = dokuman.SelectSingleNode("/rss");
            XmlNodeList title = dokuman.SelectNodes("/rss/channel/item/title");
            XmlNodeList description = dokuman.SelectNodes("/rss/channel/item/description");
            XmlNodeList url = dokuman.SelectNodes("/rss/channel/item/link");
            
            DataTable tablo = new DataTable();
            DataRow satır;
            tablo.Columns.Add(new DataColumn("Ürün Adı"));
            tablo.Columns.Add(new DataColumn("Açıklama"));
            tablo.Columns.Add(new DataColumn("Url"));
            for (int i = 0; i < 3000; i++)
            {
                satır = tablo.NewRow();
                satır[0] = title.Item(i).InnerText.ToString();
                satır[1] = description.Item(i).InnerText.ToString();
                satır[2] = url.Item(i).InnerText.ToString();
                tablo.Rows.Add(satır);
            }
            GridView1.DataSource = tablo;
            GridView1.DataBind();
        }

    8 Ocak 2018 Pazartesi 08:11