ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

xml da bulunan data ları asp.net ile Mysql veri tabanına kaydetme

Mahmut TEMUR
ASP.NET
04.01.2011 13:16:38
Hit : 8216

.NET platformunda çalışıyor iseniz database olarak yoğunlukta MSSQL kullanmaktayız ki bunun elbette birçok sebebi bulunmakta. Fakat zaman zaman MSSQL haricinde farklı bir database kullanma durumundada kalabiliyoruz. Bu makalemizde XML da bulunan data larımızı bir MYSQL veri tabanına ASP.NET ile aktarmanın yollarından birini inceleyeceğiz. Neden XML da sorusu gelebilir kimilerinin aklına. Burada amaç bir taşta iki kuş vurmak olsun. hem XML daki dataları nasıl okuruz bunu ele almış olacağız hemde okuduğumuz bu dataları MYSQL e aktarmanın yolunu incelemiş olacağız.

Öncelikli olarak aşağıdaki gibi örnek bir XML oluşturalım. Tabi çok karmaşık yapmıyoruz anlatımımızın daha net anlaşılabilmesi adına.Üyelerimizin Id, Ad, Yaş ve Web sitesi bilgilerinin tutulduğu bir XML dosyamız olsun. Senaryomuz ise XML daki bu verileri okuyarak MYSQL veri tabanımıza kaydedeceğiz..

XMLFile.xml

<?xml version="1.0" encoding="utf-8" ?>
<Uyelerimiz>
  <Uye>
    <Id>1</Id>
    <Ad>Mahmut</Ad>
    <yas>29</yas>
    <site>asp.net.tr</site>
  </Uye>
    <Uye>
    <Id>2</Id>
    <Ad>Temur</Ad>
    <yas>22</yas>
    <site>default.web.tr</site>
  </Uye>
</Uyelerimiz>

 

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<%--Button1 ile sonucu görüntüleyelim...--%>
   
    &nbsp;<asp:Button ID="Button2" runat="server" onclick="Button2_Click"
            Text="Button" />
<%--Button2 ilede XML deki verileri MYSQL e aktaralım..--%>
   
    </div>
<%--Ben bilgileri görüntülemek için Datalist kullandım sizin tercihiniz ne ise onu kullanabilirsiniz. Repeater bu konudaki performans farkını unutmamak lazım. Şuanda makaleyi yazarken ne kullanalım diye sorduğumda yanımdakilere Datalist cevabını aldığım için Datalist kullandım. Favorim Repeater dır.--%>
    <asp:DataList ID="sondurum" runat="server" CellPadding="0"
        ForeColor="#333333" RepeatColumns="1" RepeatDirection="Horizontal"
        style="text-align: left" Width="175px">
        <ItemTemplate>
            <div>
                <%#Eval("ad")%> - <%#Eval("yas")%> - <%#Eval("site")%></div>
        </ItemTemplate>
    </asp:DataList>
 
    </form>
</body>
</html>

Öncelikli olarak MYSQL class larımız için BURADAN gerekli olan dll dosyalarımızı indirerek projemizde bin klasörüne ekliyoruz.

Default.aspx.cs

 

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;
using MySql.Data.MySqlClient; // Eklemeyi unutmuyoruz..
using System.Data.SqlClient; // Eklemeyi unutmuyoruz..

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        // XmlDocument classı ile XML işlemlerimizi gerçekleştirdiğimiz için tanımlama işlemini yapıyoruz.
        XmlDocument xml = new XmlDocument();

        // Datalarını okuyacağımız XML imizin yolunu belirterek Ram'e yüklüyoruz.
        xml.Load(Server.MapPath("XMLFile.xml"));

        // XmlNodeLis class ı ile XML dosyamızdan aldığımız dataları okuyoruz.
        XmlNodeList kayitlar = xml.SelectNodes("/Uyelerimiz/Uye");
        foreach (XmlNode uye in kayitlar)
        {
            // İhtiyaç tuduğumuz herbir elemanı string türünden birer değişkenlere atıyoruz..
            string ad = uye.ChildNodes[1].InnerText;
            string yas = uye.ChildNodes[2].InnerText;
            string site = uye.ChildNodes[3].InnerText;

            //Mysql database ile bağlantımızı kuruyoruz...
            MySqlConnection con = new MySqlConnection("server=.; database=dbismi; uid=dbuserismi; pwd=sifre");

            // Insert işlemimizide xml elemanları gibi bir string değişkene tanımlıyoruz..
            string ekle="insert into Uyeler(ad,yas,site) values('" + ad + "','" + yas + "','" + site + "')";
           
            //DataAdapter ımıza Insert işlemimizi dahil ediyoruz..
            MySqlDataAdapter da = new MySqlDataAdapter(ekle, con);

            DataSet ds = new DataSet();
            da.Fill(ds);

        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
       
        // Son durumu görüntülemek için Mysql databasemize bağlanıp oradaki verileri pagemizde bulunan Datalist'e aktararak yeni datalarımızıda görebiliriz..
        MySqlConnection conn = new MySqlConnection("server=.; database=dbismi; uid=dbuserismi; pwd=sifre");
        DataTable dt = new DataTable();
        MySqlDataAdapter myda = new MySqlDataAdapter("select * from Uyeler",conn);
        myda.Fill(dt);
        sondurum.DataSource = dt;
        sondurum.DataBind();
    }
}

 

Sonuç gayet başarılı...

 

Bir sonraki makalemize kadar sağlıcakla kalınız..




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR