Osman KURT

Yazılım Uzmanı

ASP.Net ve XML'e Yazma

Konumuz başlıkta yazdığı gibi Asp.Net ile Xml yazdırmak. Elbet bir kaçınız yada çoğunuz asp.net kullanmaktadır ve bu yüzden bu konu işe yarar diye düşündüm. Hele birde netteki örneklerde benim gibi sorun yaşıyorsanız çok işinize yarayabilir.
İlk olaraktan kullanacağımız kütüphaneleri ekliyoruz.

using System.Xml;
using System.Text;

Ve sonrasında depo database imizde bulunan resim tablomuzdan gerekli bilgilerimizi çekip dataXML.xml isimli xml'imize bunları yazdırıyoruz.


OleDbConnection baglan = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/App_Data/depo.mdb"));
OleDbCommand komutt = new OleDbCommand("select * from resim", baglan);
baglan.Open();
OleDbDataReader dr = komutt.ExecuteReader();
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("~/dataXML.xml"), Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("galerie");
while (dr.Read())
{
writer.WriteStartElement("img thumbEvents=\"true\" thumbnail=\"" + dr["thumbnail"].ToString() + "\" large=\"" + dr["large"].ToString() + "\" description=\"" + dr["description"].ToString() + "\"");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
baglan.Close();


Hepsi bu kadarcık.
Kodları okuyunca zaten neyin ne olduğuda çok açık, herhangi bir sorunu da konu altından benimle paylaşırsanız yardımcı olurum.
Neyse bu işlemlerden sonra dataXML.xml'in son halini görmekte hakkınız
Bende çıkan sonuç şu şekilde;


<?xml version="1.0" encoding="utf-8"?>
<galerie>
<img thumbEvents="true" thumbnail="pictures/thumbnails/21IWuqrpiG201.jpg" large="pictures/large/21IWuqrpiG201.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2On1WnAzrE702.jpg" large="pictures/large/2On1WnAzrE702.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2aYC2LIeZnP03.jpg" large="pictures/large/2aYC2LIeZnP03.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2RIeMrGuSTx04.jpg" large="pictures/large/2RIeMrGuSTx04.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2VUXUnMgIBn05.jpg" large="pictures/large/2VUXUnMgIBn05.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2Sus3UmfNg606.jpg" large="pictures/large/2Sus3UmfNg606.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2l6ZE7VOXNQ07.jpg" large="pictures/large/2l6ZE7VOXNQ07.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2bPtHCu5syf08.jpg" large="pictures/large/2bPtHCu5syf08.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2PGSJwPgaRs09.jpg" large="pictures/large/2PGSJwPgaRs09.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2siQCksaJFT10.jpg" large="pictures/large/2siQCksaJFT10.jpg" description="Tanım Denemesi" />
</galerie>

Buraya kadar eksiksiz bir şekilde yazarsanız benimle aynı sonucu alacağınızı düşünüyorum.

Görüşmek Üzere;

Osman KURT

Asp.Net ve URL İşlemleri

Arakadaşlar geçen gün çalıştığım firmada ki çok sevdiğim bir abim kendisinin yöneticisi olduğu bir web sayfasına ait tam 4000 (dort bin) adet sub domain açıcağını söyledi. E tabi sizde takdir edersiniz ki 4000 tane sub domaini açmak her babayiğidin harcı değil yani :). Sağolsun kendisi yardıma bizi layık görmüş bu konu hakkında fikir üretmiş bunların yapılabilirliğini ve yapabilirmiyim diye bana geldi. Bende düşündükleri derya deniz olan bu abimin bazı isteklerinin (baya fazla) yapılabileceğini ve yapabileceğimi söyledim. Tabi kendi işimi aksatmadan :)

Neyse işe ilk olarak bir kolay portal oluşturarak başladım. Sonra bu sub domainlerin google da ilk sıraları zorlaması için portal içine dinamik bir met tag yönetimi yaptım. Bu dinamik meta tag yönetiminin kodlarınıda başka bir yazıda paylaşıcam elbet sizinle. Daha sonra anasayfa kısmında başka bir arkadaşımında yardımıyla asıl web sayfasının veritabanına bağlanarak ordan random bir şekilde 20 adet ürün çektim. Asıl önemli kısım bunları yaparken en kolay en basit ve en kısa zaman da yapmaktı bunun içinde oluşturduğumuz portalın image dosyalarından tutun da css dosyasına kadar olan bütün dosyalarını ana dizinde tuttuk yani açtığımız bütün sub domainler aynı yerden image dosyalarını ve css doayalarını çekiyor. Buda bize çok fazla zaman kazandırdı. Bu olayı yaparken yazılımcı olduğum için bişeyler ürettiğim için gerçekten mutl oldum. Yazılımın tadına vardım. Normalde yaptıığım şey çok küçük bişey ama ortaya bişey koymak gerçekten küçükte olsa bir yazılımcıyı mutlu edebiliyormuş.

Gelelim asıl konuya benim takıldığım bir nokta url yönetimiydi.O da nasıl bişey, açtığımız her subdomainin ismi yaptığımız sitelerde bize lazım olacaktı, metatag'larda kullanmak için. İnternette baya bişey araştırdım. Sonunda buldum. Meğer neler varmış ya :). Şimdi bu bulduğum kod parçacıklarından bazılarını sinle paylaşmak istedim. Çünkü benim dışında sizinde işinize yarayacağına inanıyorum.

Bu işlemlerden bazıları;
 
//root dizini verir.
Response.Write("root dizin : " + HttpContext.Current.Request.Url.Host.ToString());
//sonraki dizinler
Response.Write("sonraki dizin : " + HttpContext.Current.Request.Url.AbsolutePath.ToString());
//Full adres satırı
Response.Write("Full adres : " + HttpContext.Current.Request.Url.AbsoluteUri.ToString());
//Portlu Full adres satırı
Response.Write("Portlu Full adres : " + HttpContext.Current.Request.Url.OriginalString.ToString());
//Portu
Response.Write("Portu : " + HttpContext.Current.Request.Url.Port.ToString());
//Query
Response.Write("Query :" + HttpContext.Current.Request.Url.Query.ToString());
//http
Response.Write("http : " + HttpContext.Current.Request.Url.Scheme.ToString());
QueryString almak için aynı zamanda Request.QueryString["id"] şeklinde bir kullanımda gerçekleştirebiliriz.

Osman KURT
Yazılım Uzmanı

ASP.Net de Veri Kaydı

Evet arkadaşlar bu yazımızda asp.net de veri kaydı yapmayı öğreneceğiz.

İlk olarak Default.aspx sayfamıza 1 adet textbox ve 1 adet buton ekliyoruz. Sayfamıza eklediğimiz bu textbox dan veri tabanımıza isim kaydı yapacağız. Sayfamıza textbox ve butonumuzu ekledikten sonra veri kaydı yapacağımız database'imizi tasarlıyoruz.

Veri tabanımızı alt kısımda bulunan resim gibi tasarlıyoruz ve veri tabanı adı olarak ta db.mdb ismini veriyoruz. 

Şimdi ise işin kod kısmını yazalım; Default.aspx sayfamıza eklediğimiz butonun üzerine gelerek çift tıklıyoruz ve kod bloğunu açıyoruz.

 

OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb;Mode=ReadWrite;Persist Security Info=False");      

OleDbCommand cmd = new OleDbCommand("insert into isim (ad) values ('" + TextBox1.Text + "') ", cnn);

cnn.Open();

cmd.ExecuteNonQuery();

cnn.Close();

Bu kodu sayfamıza direk kopyaladığımız da yada yazdığımızda çalışmayacak ve hata verecektir. Bu hatayı engellemek ve kodlarımızın çalışmasını sağlamak için kod bloğumuzun en üst kısmında bulunan kütüphane kısımlarına;

Using System.Data.OleDb;

Kodunu ekliyoruz. Bu kodu ekledikten sonra sayfamız sorunsuz bir şekilde çalışacaktır

Saygılarımla;

Osman KURT