<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Engin Terzi - ASP.NET</title>
    <link>http://www.enginterzi.com.tr/</link>
    <description>C# , ASP.NET, MS SQL Server &amp; Windows Applications  Üzerine Herşey Püf Noktaları &lt;br&gt; Takip Ettiğim Teknoloji Haberleri</description>
    <language>en-us</language>
    <copyright>Engin Terzi</copyright>
    <lastBuildDate>Fri, 28 Mar 2008 14:08:48 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>me@enginterzi.com.tr</managingEditor>
    <webMaster>me@enginterzi.com.tr</webMaster>
    <item>
      <trackback:ping>http://www.enginterzi.com.tr/Trackback.aspx?guid=d0457a9e-1f62-4dcd-ad21-01f1eec8939f</trackback:ping>
      <pingback:server>http://www.enginterzi.com.tr/pingback.aspx</pingback:server>
      <pingback:target>http://www.enginterzi.com.tr/PermaLink,guid,d0457a9e-1f62-4dcd-ad21-01f1eec8939f.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Dataset nesneleri aslında ADO(ActiveX Data
Objects) ile gelen recordset kavramına çok benzemekte ve bunlara paralellik göstermektedir.
Ancak recordset kavramı tam olarak ADO.Net ile gelen Dataset nesnelerini karşılamamaktadır.
Dataset objeleri bu recordsetlerin bayağı genişletilmiş bir versiyonu olarak karşımıza
çıkmaktadır. Datasetler genel olarak veritabanı ile bağlantısı kesilmiş verileri tutmakta
kullanılır. Daha önceki yazılarımızdan kalma geleneği devam ettirerek adım adım anlatacağım.
Anlatacağım adımlar :<br /><br /><br /><br />
I.              DataSet
nesnesi yaratılması<br /><br />
II.             Kayıt
Ekleme<br /><br />
III.            “Dirty” Data
Yakalama<br /><br />
IV.            Değişiklikleri
Kabul Etme<br /><br />
V.             Veri Bileşenlerini
Bağlama<br /><br />
VI.            Veri Saklama(Persisting
Data)<br /><br /><br /><br /><b><font color="#a52a2a">I. DataSet Nesnesi Yaratma</font></b><br /><br /><br /><br />
DataSet nesnesinin bir örneği yaratılacağı zaman DataSet constructor’ı kullanılır.
Yeni bir DataSet nesnesi yaratırken isterseniz parametresiz çağırarak taban constructor’ını
kullanabilirsiniz veya kendiniz bu metodu overload edebilirsiniz bu durumda ise constructor’e
DataSet nesnesinin  adını parametre olarak gönderirsiniz. Aşağıda bu iki durumun
kullanmı gösterilmiştir.<br /><br /><br /><br />
DataSet dataSet = new DataSet();    è Taban constructor’ı kullanılmış<br /><br />
DataSet dataSet = new DataSet("ornekDataSet");  è overload edilmiş<br /><br /><br /><br />
DataSet nesnesinin içini doldurnayı .Net data providerları bir arabirim işlevi görerek
yapar. DataSet nesnesi veriyi tutar, veri üzerinde update(güncelleme), delete(silme),
add(ekleme) işlevlerinin yapılmasına da izin verir. Ancak bu DataSet nesnesinin o
sırada veritabanı ile bağlantısı olmadığı için Update metodu çağrıldığı zaman veri
üzerinde yapılan değişiklikler DataAdapter nesnesi aracılığı ile veritabanına gönderilirler.<br /><br /><br /><br />
DataSet nesnesinin içerisindeki veriler tablolar halinde organize olmuştur. Bu tablolar
DataTable nesnesi tarafından üretilir. Bu tabloları kullanırken DataSet nesnesi birbirileri
ile alakalı yada alakasız bir çok veri kümesi tutar. Her DataTable nesnesi ise içerdiği
DataRow ve DataColumn nesneleri ile verileri tutar.<br /><br /><br /><br />
DataSet’i verilerle doldurduktan sonra istediğiniz veriyi döndürmek için verileri
parse etmek gerekir. Bu ise dataset içerisinde satır ve sütunlar arasında bir döngü
kurularak yapılabilir. Bunun için basit bir döngü kodu aşağıda belirtilmiştir.<br /><br /><br /><br />
foreach(DataRow row in dataSet.Tables[0].Rows)<br /><br />
{<br /><br />
foreach(DataColumn col in row.Table.Columns)<br /><br />
  this.textBox1.Text = this.textBox1.Text + row[col].ToString() + "\t";<br /><br />
this.textBox1.Text = this.textBox1.Text + "\n";<br /><br />
}<br /><br /><br /><br />
Eğer veriyi parse ederken veri üzerinde bir değişiklik yapmak isteyebilirsiniz bu
durumda datasetin DataRow(satır) ve DataColomn’ına(sütun) erişmeniz gerekir. Bunun
için ise basit bir kod aşağıda belirtilmiştir.<br /><br /><br /><br />
foreach(DataRow row in dataSet.Tables[0].Rows)<br /><br />
row[1] = "YeniDeger";<br /><br /><br /><br /><b><font color="#a52a2a">II. Kayıt Ekleme</font></b><br /><br /><br /><br />
Yeni bir DataRow nesnesi yaratarak DataSet’e yeni kayıt eklemesi yapılır. Bu ise DataTable
nesnesinin NewRow metodu kullanılarak gerçekleştirilir. Bu metod ile boş bir row(sıra)
yaratılır. Kayıt ekleme için basit bir örnek kod aşağıda belirtilmiştir.<br /><br /><br /><br />
DataRow row = dataSet.Tables[0].NewRow();<br /><br />
row["tanitici_no"] = "11-03-1981";<br /><br />
row["soyad"] = "soyad";<br /><br />
row["ilkad"] = "ilkad";<br /><br />
dataSet.Tables[0].Rows.Add(row);<br /><br /><br /><br /><b><font color="#a52a2a">III. “Dirty” Data Yakalama</font></b><br /><br /><br /><br />
Türkçeye direkt olarak çevirdiğimiz zaman kirli veri gibi bir anlama geldiği için
bu terimin ingilizcesini kullanacağım. Bazen veriler üzerinde değişiklik yaparız ancak
bu değişklikler henüz DataSet tarafından kabul edilmemiştir. İşte bu gibi durumlarda
bu tip verilere verilen isim Dirty Data’dır. Şimdi ise bu Dirty Data’nın yakalanma
işlemine sıra geldi. Bu tip verileri yakalamak için DataSet içerisinde HasChanges()
metodu mevcuttur. Bu metod sonunda eğer true dönerse DataSet’in üzerinde değişiklik
yapılan(ancak bu değişiklikler henüz DataSet tarafından kabul edilmemiştir.) verilere
sahip olduğu anlamına gelir. Dirty Data yakalamaya örnek basit bir metodun kod parçası
aşağıda gösterilmiştir.<br /><br /><br /><br />
private void DirtyDataYakala (DataSet dataSet)<br /><br />
{<br /><br />
      if(dataSet.HasChanges())//Eğer değişklik yapıldıysa
buraya girer<br /><br />
      {    <br /><br />
//Sadece değişiklikleri getir<br /><br />
            DataSet dirtyDataSet
= dataSet.GetChanges();<br /><br />
      }<br /><br />
}<br /><br /><br /><br /><br /><br /><b><font color="#a52a2a">IV. Değişiklikleri Kabul Etme</font></b><br /><br /><br /><br />
DataSet üzerinde herhangi bir veri üzerinde değişklik yapıldığı zaman veride değişiklik
yapıldığına dair işaretlenir. Eğer veri üzerinde yapılan değişkliğin doğruluğu onaylanırsa
veri üzerinde yapılan değişiklikler kabul edilmek üzere DataSet nesnesinin AcceptChanges()
metodu çağrılır. Ayrıca tüm DataSet’ler üzerinde yapılan değişiklikleri kabul etmek
istemiyorsanız DataRow yada DataTable’ın AcceptChanges() metodunu kullanabilirsiniz.
Bu sayede veriler üzerinde tam bir yönetim söz konusu olabilir.<br /><br /><br /><br />
Yalnız DataSet üzerinde yaptığınız değişiklikler veritabanını değiştirmez.(Eğer DataSet’inizin
veritabanı bağlantısı kesilmişse ki performans açısından bağlantının kesilmiş olması
daha yararlıdır.). Bu yüzden DataAdapter nesnesinin Update() metodunu kullanarak veritabanına
sadece değişiklik yapılan kısımların gönderilmesi sağlanır. (Dikkat tüm veriler gitmiyor
sadece değişiklikler gidiyor.)<br /><br /><br /><br /><b><font color="#a52a2a">V. Veri Bileşenlerini Bağlamak</font></b><br /><br /><br /><br />
Yeni .Net bileşenleri(component) sayesinde verileri bağlamak hem Windows Formlarında
hem de Web Formlarında oldukça basitleşti. DataSetleri Windows veya Web Formlarına
bağlayarak DataSetin içindeki bütün verileri görmek mümkün.<br /><br /><br /><br />
Bu bileşenlerden bir tanesi olan DataGrid’ler çoklu DataTable nesnesini içlerinde
barındırırlar. Bu DataTable’lerin her biri de çoklu data row nesneleri içerirler.
DataGrid’in DataSource özelliğine sadece DataSet nesnesini bağlamamız DataSet’lere
erişmemiz için yeterli olur. Tabii bir de DataSet içerisinden hangi DataTable nesnesinin
gösterileceğini belirtmemiz gerekir. Aksi halde DataGrid üzerinde DataSet’in sahip
olduğu bütün DataRow’lar gösterilir. Bu işlemi ise DataGrid’in DataMember özelliğini
kullanarak yapabiliriz. Şimdi bu işlemleri gösteren basit bir kod parçasına bakalım.<br /><br /><br /><br />
//Yalnız bu işlemi yaparken<br /><br />
//DataGrid'in daha önceden tanımlanmış olması gerekir<br /><br />
ornekDataGrid.DataSource = dataSet;<br /><br />
ornekDataGrid.DataMember = "Insan";<br /><br /><br /><br />
DataGrid nesnesini Toolbox içerisinden formunuza sürükleyip bırakarak yaratabilirsiniz.
Yada eğer Windows Application yapıyorsanız System.Windows.Forms.DataGrid isim uzayı
altından manuel olarak da yaratabilirsiniz. Eğer Web Appplication yazıyorsanız System.Web.UI.WebControls.DataGrid
isim uzayı altından yaratabilirsiniz.<br /><br /><br /><br />
Diğer kontollerde örneğin metin kutularında(TextBox)’larda ise Windows Application’da
System.Windows.Forms.Controls.Binding sınıfını kullanarak DataSet’leri bağlayabilirsiniz.
Eğer Web Application yazıyorsanız bu sefer System.Web.UI.DataBinding sınıfını kullanabilirsiniz.
Şimdi bunlara ilişkin küçük bir kod parçasına bakalım.<br /><br /><br /><br />
Windows Application için ;<br /><br /><br /><br />
textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", dataSet, "tanitici_no"));<br /><br /><br /><br />
Web Application için ;<br /><br /><br /><br />
Burada biraz daha değişik Web Application’larda Run Time(çalışma) sırasında veriler
bağlanır bu yüzden bu kontrollere veri bağlayacağınız zaman bu işlemi seçtiğiniz kontrolün(TextBox,
Label vs…Wink Properties(özellik) penceresinden DataBaindings özelliğini tıklayıp
custom binding expression radio button’unun seçip ordaki alanın içine new System.Web.UI.DataBinding("Text",
dataSet, "tanitici_no")  şeklinde bağlamak istediğiniz verinin expression’ını
yazmanız yeterli olacaktır.<br /><br /><br /><br />
Şimdi parantez içinde yazannların neler olduğuna bakalım:<br /><br />
“Text” : Bu kontrolün hangi özelliğine veri bağlayacağımızı belirtir. “Text” diye
belirterek metin kutusuna Text özelliğine veri bağlayacağımızı belirtiyoruz. 
(Property name)<br /><br /><br /><br />
dataSet : Veri kaynağı nesnesini belirtiyoruz. (data source)<br /><br /><br /><br />
“tanitici_ no”  : Bu ise bağlanan verinin hangi üyesinin bağlandığını belirtir.
(data member)<br /><br /><br /><br /><b><font color="#a52a2a">VI. Veri Saklama(Persisting Data)</font></b><br /><br /><br /><br />
DataSetler üzerinde çalışırken, DataSet’teki verileri bilgisayarınızdaki XML dosyalarına
kaydedebilirsiniz. Örneğin seyahate çıktınız. Ancak şirket bilgisayarındaki veritabanı
bilgilerine ihtiyacınız var. Bu veritabanını öncelikle DataSet’e bağlayıp bütün verileri
XML dosyasına kaydettiğiniz zaman seyahatte iken bu XML dosyasını kullanarak bütün
verilere ulaşabilirsiniz. Ve bu dosyadaki verileri kullanarak işinizi yapabilirsiniz
daha sonra bu dosya üzerinde yaptığınız değişiklikleri seyahat dönüşü şirket bilgisayarınıza
aktarabilirsiniz. Aşağıda bu işlemle ilgili örnek bir kod parçası belirtilmiştir.<br /><br /><br /><br />
DataSet üzerindeki veriyi XML dosyasına kaydetme :<br /><br /><br /><br />
dataSet.WriteXml(“C:\\Veri.xml”Wink;<br /><br /><br /><br />
XML dosyasındaki verileri DataSet’e aktarma :<br /><br /><br /><br />
dataSet.ReadXml(“C:\\Veri.xml”Wink;<br /><br /><br /><br />
Evet teorik olaraka DataSet nesneleri ile anlatacaklarım bu kadar. Ancak yukarıda
anlattıklarım ile ilgili olarak basit bir Windows C#.Net uygulamasını da buraya koyuyorum.
Programı indirmek için DataSets tıklayın. Uygulama yine SQL Server ile birlikte gelen
Northwind veritabanını ve bununla birlikte gelen Ten Most Products adlı Stored Procedure’ı
kullanmakta.<p></p><img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=d0457a9e-1f62-4dcd-ad21-01f1eec8939f" /></body>
      <title>Dataset Kavramı nedir? Nasıl Yaratılır ve Nasıl Kullanılır?</title>
      <guid isPermaLink="false">http://www.enginterzi.com.tr/PermaLink,guid,d0457a9e-1f62-4dcd-ad21-01f1eec8939f.aspx</guid>
      <link>http://www.enginterzi.com.tr/Dataset+Kavram%c4%b1+Nedir+Nas%c4%b1l+Yarat%c4%b1l%c4%b1r+Ve+Nas%c4%b1l+Kullan%c4%b1l%c4%b1r.aspx</link>
      <pubDate>Fri, 28 Mar 2008 14:08:48 GMT</pubDate>
      <description>Dataset nesneleri aslında ADO(ActiveX Data Objects) ile gelen recordset kavramına çok benzemekte ve bunlara paralellik göstermektedir. Ancak recordset kavramı tam olarak ADO.Net ile gelen Dataset nesnelerini karşılamamaktadır. Dataset objeleri bu recordsetlerin bayağı genişletilmiş bir versiyonu olarak karşımıza çıkmaktadır. Datasetler genel olarak veritabanı ile bağlantısı kesilmiş verileri tutmakta kullanılır. Daha önceki yazılarımızdan kalma geleneği devam ettirerek adım adım anlatacağım. Anlatacağım adımlar :&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataSet
nesnesi yaratılması&lt;br&gt;
&lt;br&gt;
II.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kayıt
Ekleme&lt;br&gt;
&lt;br&gt;
III.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; “Dirty” Data
Yakalama&lt;br&gt;
&lt;br&gt;
IV.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Değişiklikleri
Kabul Etme&lt;br&gt;
&lt;br&gt;
V.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Veri Bileşenlerini
Bağlama&lt;br&gt;
&lt;br&gt;
VI.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Veri Saklama(Persisting
Data)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;I. DataSet Nesnesi Yaratma&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet nesnesinin bir örneği yaratılacağı zaman DataSet constructor’ı kullanılır.
Yeni bir DataSet nesnesi yaratırken isterseniz parametresiz çağırarak taban constructor’ını
kullanabilirsiniz veya kendiniz bu metodu overload edebilirsiniz bu durumda ise constructor’e
DataSet nesnesinin&amp;nbsp; adını parametre olarak gönderirsiniz. Aşağıda bu iki durumun
kullanmı gösterilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet dataSet = new DataSet();&amp;nbsp;&amp;nbsp;&amp;nbsp; è Taban constructor’ı kullanılmış&lt;br&gt;
&lt;br&gt;
DataSet dataSet = new DataSet("ornekDataSet");&amp;nbsp; è overload edilmiş&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet nesnesinin içini doldurnayı .Net data providerları bir arabirim işlevi görerek
yapar. DataSet nesnesi veriyi tutar, veri üzerinde update(güncelleme), delete(silme),
add(ekleme) işlevlerinin yapılmasına da izin verir. Ancak bu DataSet nesnesinin o
sırada veritabanı ile bağlantısı olmadığı için Update metodu çağrıldığı zaman veri
üzerinde yapılan değişiklikler DataAdapter nesnesi aracılığı ile veritabanına gönderilirler.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet nesnesinin içerisindeki veriler tablolar halinde organize olmuştur. Bu tablolar
DataTable nesnesi tarafından üretilir. Bu tabloları kullanırken DataSet nesnesi birbirileri
ile alakalı yada alakasız bir çok veri kümesi tutar. Her DataTable nesnesi ise içerdiği
DataRow ve DataColumn nesneleri ile verileri tutar.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet’i verilerle doldurduktan sonra istediğiniz veriyi döndürmek için verileri
parse etmek gerekir. Bu ise dataset içerisinde satır ve sütunlar arasında bir döngü
kurularak yapılabilir. Bunun için basit bir döngü kodu aşağıda belirtilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
foreach(DataRow row in dataSet.Tables[0].Rows)&lt;br&gt;
&lt;br&gt;
{&lt;br&gt;
&lt;br&gt;
foreach(DataColumn col in row.Table.Columns)&lt;br&gt;
&lt;br&gt;
&amp;nbsp; this.textBox1.Text = this.textBox1.Text + row[col].ToString() + "\t";&lt;br&gt;
&lt;br&gt;
this.textBox1.Text = this.textBox1.Text + "\n";&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Eğer veriyi parse ederken veri üzerinde bir değişiklik yapmak isteyebilirsiniz bu
durumda datasetin DataRow(satır) ve DataColomn’ına(sütun) erişmeniz gerekir. Bunun
için ise basit bir kod aşağıda belirtilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
foreach(DataRow row in dataSet.Tables[0].Rows)&lt;br&gt;
&lt;br&gt;
row[1] = "YeniDeger";&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;II. Kayıt Ekleme&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Yeni bir DataRow nesnesi yaratarak DataSet’e yeni kayıt eklemesi yapılır. Bu ise DataTable
nesnesinin NewRow metodu kullanılarak gerçekleştirilir. Bu metod ile boş bir row(sıra)
yaratılır. Kayıt ekleme için basit bir örnek kod aşağıda belirtilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataRow row = dataSet.Tables[0].NewRow();&lt;br&gt;
&lt;br&gt;
row["tanitici_no"] = "11-03-1981";&lt;br&gt;
&lt;br&gt;
row["soyad"] = "soyad";&lt;br&gt;
&lt;br&gt;
row["ilkad"] = "ilkad";&lt;br&gt;
&lt;br&gt;
dataSet.Tables[0].Rows.Add(row);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;III. “Dirty” Data Yakalama&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Türkçeye direkt olarak çevirdiğimiz zaman kirli veri gibi bir anlama geldiği için
bu terimin ingilizcesini kullanacağım. Bazen veriler üzerinde değişiklik yaparız ancak
bu değişklikler henüz DataSet tarafından kabul edilmemiştir. İşte bu gibi durumlarda
bu tip verilere verilen isim Dirty Data’dır. Şimdi ise bu Dirty Data’nın yakalanma
işlemine sıra geldi. Bu tip verileri yakalamak için DataSet içerisinde HasChanges()
metodu mevcuttur. Bu metod sonunda eğer true dönerse DataSet’in üzerinde değişiklik
yapılan(ancak bu değişiklikler henüz DataSet tarafından kabul edilmemiştir.) verilere
sahip olduğu anlamına gelir. Dirty Data yakalamaya örnek basit bir metodun kod parçası
aşağıda gösterilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
private void DirtyDataYakala (DataSet dataSet)&lt;br&gt;
&lt;br&gt;
{&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dataSet.HasChanges())//Eğer değişklik yapıldıysa
buraya girer&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;
&lt;br&gt;
//Sadece değişiklikleri getir&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataSet dirtyDataSet
= dataSet.GetChanges();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;IV. Değişiklikleri Kabul Etme&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet üzerinde herhangi bir veri üzerinde değişklik yapıldığı zaman veride değişiklik
yapıldığına dair işaretlenir. Eğer veri üzerinde yapılan değişkliğin doğruluğu onaylanırsa
veri üzerinde yapılan değişiklikler kabul edilmek üzere DataSet nesnesinin AcceptChanges()
metodu çağrılır. Ayrıca tüm DataSet’ler üzerinde yapılan değişiklikleri kabul etmek
istemiyorsanız DataRow yada DataTable’ın AcceptChanges() metodunu kullanabilirsiniz.
Bu sayede veriler üzerinde tam bir yönetim söz konusu olabilir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Yalnız DataSet üzerinde yaptığınız değişiklikler veritabanını değiştirmez.(Eğer DataSet’inizin
veritabanı bağlantısı kesilmişse ki performans açısından bağlantının kesilmiş olması
daha yararlıdır.). Bu yüzden DataAdapter nesnesinin Update() metodunu kullanarak veritabanına
sadece değişiklik yapılan kısımların gönderilmesi sağlanır. (Dikkat tüm veriler gitmiyor
sadece değişiklikler gidiyor.)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;V. Veri Bileşenlerini Bağlamak&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Yeni .Net bileşenleri(component) sayesinde verileri bağlamak hem Windows Formlarında
hem de Web Formlarında oldukça basitleşti. DataSetleri Windows veya Web Formlarına
bağlayarak DataSetin içindeki bütün verileri görmek mümkün.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Bu bileşenlerden bir tanesi olan DataGrid’ler çoklu DataTable nesnesini içlerinde
barındırırlar. Bu DataTable’lerin her biri de çoklu data row nesneleri içerirler.
DataGrid’in DataSource özelliğine sadece DataSet nesnesini bağlamamız DataSet’lere
erişmemiz için yeterli olur. Tabii bir de DataSet içerisinden hangi DataTable nesnesinin
gösterileceğini belirtmemiz gerekir. Aksi halde DataGrid üzerinde DataSet’in sahip
olduğu bütün DataRow’lar gösterilir. Bu işlemi ise DataGrid’in DataMember özelliğini
kullanarak yapabiliriz. Şimdi bu işlemleri gösteren basit bir kod parçasına bakalım.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
//Yalnız bu işlemi yaparken&lt;br&gt;
&lt;br&gt;
//DataGrid'in daha önceden tanımlanmış olması gerekir&lt;br&gt;
&lt;br&gt;
ornekDataGrid.DataSource = dataSet;&lt;br&gt;
&lt;br&gt;
ornekDataGrid.DataMember = "Insan";&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataGrid nesnesini Toolbox içerisinden formunuza sürükleyip bırakarak yaratabilirsiniz.
Yada eğer Windows Application yapıyorsanız System.Windows.Forms.DataGrid isim uzayı
altından manuel olarak da yaratabilirsiniz. Eğer Web Appplication yazıyorsanız System.Web.UI.WebControls.DataGrid
isim uzayı altından yaratabilirsiniz.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Diğer kontollerde örneğin metin kutularında(TextBox)’larda ise Windows Application’da
System.Windows.Forms.Controls.Binding sınıfını kullanarak DataSet’leri bağlayabilirsiniz.
Eğer Web Application yazıyorsanız bu sefer System.Web.UI.DataBinding sınıfını kullanabilirsiniz.
Şimdi bunlara ilişkin küçük bir kod parçasına bakalım.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Windows Application için ;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", dataSet, "tanitici_no"));&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Web Application için ;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Burada biraz daha değişik Web Application’larda Run Time(çalışma) sırasında veriler
bağlanır bu yüzden bu kontrollere veri bağlayacağınız zaman bu işlemi seçtiğiniz kontrolün(TextBox,
Label vs…Wink Properties(özellik) penceresinden DataBaindings özelliğini tıklayıp
custom binding expression radio button’unun seçip ordaki alanın içine new System.Web.UI.DataBinding("Text",
dataSet, "tanitici_no")&amp;nbsp; şeklinde bağlamak istediğiniz verinin expression’ını
yazmanız yeterli olacaktır.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Şimdi parantez içinde yazannların neler olduğuna bakalım:&lt;br&gt;
&lt;br&gt;
“Text” : Bu kontrolün hangi özelliğine veri bağlayacağımızı belirtir. “Text” diye
belirterek metin kutusuna Text özelliğine veri bağlayacağımızı belirtiyoruz.&amp;nbsp;
(Property name)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
dataSet : Veri kaynağı nesnesini belirtiyoruz. (data source)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
“tanitici_ no”&amp;nbsp; : Bu ise bağlanan verinin hangi üyesinin bağlandığını belirtir.
(data member)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;VI. Veri Saklama(Persisting Data)&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSetler üzerinde çalışırken, DataSet’teki verileri bilgisayarınızdaki XML dosyalarına
kaydedebilirsiniz. Örneğin seyahate çıktınız. Ancak şirket bilgisayarındaki veritabanı
bilgilerine ihtiyacınız var. Bu veritabanını öncelikle DataSet’e bağlayıp bütün verileri
XML dosyasına kaydettiğiniz zaman seyahatte iken bu XML dosyasını kullanarak bütün
verilere ulaşabilirsiniz. Ve bu dosyadaki verileri kullanarak işinizi yapabilirsiniz
daha sonra bu dosya üzerinde yaptığınız değişiklikleri seyahat dönüşü şirket bilgisayarınıza
aktarabilirsiniz. Aşağıda bu işlemle ilgili örnek bir kod parçası belirtilmiştir.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
DataSet üzerindeki veriyi XML dosyasına kaydetme :&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
dataSet.WriteXml(“C:\\Veri.xml”Wink;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
XML dosyasındaki verileri DataSet’e aktarma :&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
dataSet.ReadXml(“C:\\Veri.xml”Wink;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Evet teorik olaraka DataSet nesneleri ile anlatacaklarım bu kadar. Ancak yukarıda
anlattıklarım ile ilgili olarak basit bir Windows C#.Net uygulamasını da buraya koyuyorum.
Programı indirmek için DataSets tıklayın. Uygulama yine SQL Server ile birlikte gelen
Northwind veritabanını ve bununla birlikte gelen Ten Most Products adlı Stored Procedure’ı
kullanmakta.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=d0457a9e-1f62-4dcd-ad21-01f1eec8939f" /&gt;</description>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.enginterzi.com.tr/Trackback.aspx?guid=3e8f1f63-703f-4f40-897f-cc4699d7030d</trackback:ping>
      <pingback:server>http://www.enginterzi.com.tr/pingback.aspx</pingback:server>
      <pingback:target>http://www.enginterzi.com.tr/PermaLink,guid,3e8f1f63-703f-4f40-897f-cc4699d7030d.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Bir .Net uygulamsı geliştirdiğimizde uygulamamızın
bir yerinde veya birden çok yerinde aynı değişken veya benzer dizileri kullanmak isteriz.<br />
Budurumda ASP.NET teknolijisi bize web uygulamamızda .INI veya Registry gibi kullanabileceğimiz
Web.Config dosyasını vermişitir.<br /><br />
Peki bu <b>WEB.CONFIG</b> nedir ? 
<br /><br /><p>
ASP.NET projelerinde her yeni projenin kök dizininde bulunan ve içinde bulunduğu uygulamalarla
ilgili olarak her türlü (güvenlik, yetkilendirme, uygulama genelindeki ayarlar, v.b.)
gibi uygulamayı ilgilendiren ve uygulamanın çalışmasında doğrudan etkili parametrelerin
tanımlandığı XML yapılı bir dosyadır. Sabit tanımlamaların ötesinde harici parametreler
de buraya eklenerek uygulama genelinde etkili ve erişilebilir olmaları rahatlıkla
sağlanabilir.
</p><p>
Web.Config yapısını açıklarsak ;
</p><p>
Web.Config dosyası XML biçimine sahip bir dosyadır ve bize uygulama için kendi tanımlamalarımızı
yapmamızı sağlayan bölümü <font color="#990000">&lt;appSettings&gt;</font> ile başlayıp <font color="#990033">&lt;/appSettings</font>&gt;
ile biten bölüm aralığıdır. Yapısı XML ile paralellik gösterdiğinden açılan her bölümlendirme
mutlaka "<font color="#0000ff">/</font>" ile kapatılmalıdır. Konumuzla ilgili bir
örnek ile bunu da açıklayalım;
</p><p><font color="#006600">*********************************************************************</font><br /><font face="Courier New, Courier, mono" size="2">&lt;appSettings&gt;<br />
&lt;add key="ConnectionString" value="server=localhost;database=Northwind;uid=sa;pwd="
/&gt;<br />
&lt;/appSettings&gt;</font><br /><font color="#006600">*********************************************************************</font></p><p>
Web.Config dosyası içerisinde &lt;appSettings&gt; ile başlayıp &lt;/appSettings&gt;
ile biten bölüm arasında &lt;add key="......." value="......." /&gt; şeklinde istediğimiz
kadar key ile tanımlama veya sabiti burada saklayabiliriz.
</p><b><font color="#a52a2a">Hemen bir uygulam örneği göstereyim ;</font></b><br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> ConnStr;
ConnStr=ConfigurationSettings.AppSettings[<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ConnectionString"</span>]; </span></pre><br /><b><font color="#0000ff">Uygulama Yapısı ise şu şekilde ;</font></b><br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">ConfigurationSettings.AppSettings
(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"KeyName"</span>)</span></pre><br /><br />
Engin Terzi<br /><br /><p></p><img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=3e8f1f63-703f-4f40-897f-cc4699d7030d" /></body>
      <title>Web.Config'de Bilgi Saklama ve Veritabanı Bağlantısını</title>
      <guid isPermaLink="false">http://www.enginterzi.com.tr/PermaLink,guid,3e8f1f63-703f-4f40-897f-cc4699d7030d.aspx</guid>
      <link>http://www.enginterzi.com.tr/WebConfigde+Bilgi+Saklama+Ve+Veritaban%c4%b1+Ba%c4%9flant%c4%b1s%c4%b1n%c4%b1.aspx</link>
      <pubDate>Fri, 14 Mar 2008 11:16:00 GMT</pubDate>
      <description>Bir .Net uygulamsı geliştirdiğimizde uygulamamızın bir yerinde veya birden çok yerinde aynı değişken veya benzer dizileri kullanmak isteriz.&lt;br&gt;
Budurumda ASP.NET teknolijisi bize web uygulamamızda .INI veya Registry gibi kullanabileceğimiz
Web.Config dosyasını vermişitir.&lt;br&gt;
&lt;br&gt;
Peki bu &lt;b&gt;WEB.CONFIG&lt;/b&gt; nedir ? 
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
ASP.NET projelerinde her yeni projenin kök dizininde bulunan ve içinde bulunduğu uygulamalarla
ilgili olarak her türlü (güvenlik, yetkilendirme, uygulama genelindeki ayarlar, v.b.)
gibi uygulamayı ilgilendiren ve uygulamanın çalışmasında doğrudan etkili parametrelerin
tanımlandığı XML yapılı bir dosyadır. Sabit tanımlamaların ötesinde harici parametreler
de buraya eklenerek uygulama genelinde etkili ve erişilebilir olmaları rahatlıkla
sağlanabilir.
&lt;/p&gt;
&lt;p&gt;
Web.Config yapısını açıklarsak ;
&lt;/p&gt;
&lt;p&gt;
Web.Config dosyası XML biçimine sahip bir dosyadır ve bize uygulama için kendi tanımlamalarımızı
yapmamızı sağlayan bölümü &lt;font color="#990000"&gt;&amp;lt;appSettings&amp;gt;&lt;/font&gt; ile başlayıp &lt;font color="#990033"&gt;&amp;lt;/appSettings&lt;/font&gt;&amp;gt;
ile biten bölüm aralığıdır. Yapısı XML ile paralellik gösterdiğinden açılan her bölümlendirme
mutlaka "&lt;font color="#0000ff"&gt;/&lt;/font&gt;" ile kapatılmalıdır. Konumuzla ilgili bir
örnek ile bunu da açıklayalım;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#006600"&gt;*********************************************************************&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New, Courier, mono" size="2"&gt;&amp;lt;appSettings&amp;gt;&lt;br&gt;
&amp;lt;add key="ConnectionString" value="server=localhost;database=Northwind;uid=sa;pwd="
/&amp;gt;&lt;br&gt;
&amp;lt;/appSettings&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;font color="#006600"&gt;*********************************************************************&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Web.Config dosyası içerisinde &amp;lt;appSettings&amp;gt; ile başlayıp &amp;lt;/appSettings&amp;gt;
ile biten bölüm arasında &amp;lt;add key="......." value="......." /&amp;gt; şeklinde istediğimiz
kadar key ile tanımlama veya sabiti burada saklayabiliriz.
&lt;/p&gt;
&lt;b&gt;&lt;font color="#a52a2a"&gt;Hemen bir uygulam örneği göstereyim ;&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; ConnStr;
ConnStr=ConfigurationSettings.AppSettings[&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ConnectionString"&lt;/span&gt;]; &lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#0000ff"&gt;Uygulama Yapısı ise şu şekilde ;&lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;ConfigurationSettings.AppSettings
(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"KeyName"&lt;/span&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
Engin Terzi&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=3e8f1f63-703f-4f40-897f-cc4699d7030d" /&gt;</description>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.enginterzi.com.tr/Trackback.aspx?guid=791e48b0-0453-4a8d-b493-8db6ac857682</trackback:ping>
      <pingback:server>http://www.enginterzi.com.tr/pingback.aspx</pingback:server>
      <pingback:target>http://www.enginterzi.com.tr/PermaLink,guid,791e48b0-0453-4a8d-b493-8db6ac857682.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Çoğu sitede blog 'da karşılaştığımız sayfalama
tekniğinde konu başlığı ile aynı olan sayfalrın nasıl yapıldığını düşünmüşüzdür.<br />
Acaba bunlar tek tek sayfa olarakmı kaydediliyor ve nasıl yapılıyor. İşte tam bu sıra
.Net teknolojisinin bize sunduğu nimetlerden yararlanmaya geldi.<br />
ASP.NET ile bu tarz sayfaları hazırlamamız okadar kolayki şimdi aşağıda antalacağım
yöntem ile sizde şaşıracaksınız.<br /><br />
Peki yazıdan önce bu tarz sayfalar benim ne işime yaracak diye düşünürseniz 
tabiki herşeyden önce sitenizin arama motorlarında iyi bir yerde indexlenmesinin sağlanmasıdır.<br />
Arama motorları sayfalarımızı indekslerken bizim adlandırdığımız şekilde kayıtları
tutacak. Buda daha sonra yapılan arama sorgularında daha başarılı sonuçlarla, daha
öncelikli olarak listelenmesini sağlayacaktır.<br /><br /><b><font color="#ff0000">Not: Arama sonuçlarında her zaman sayfa url’leri başlık ve
içeriğe göre daha fazla öncelik sağlar.<br /><br /></font></b>Öncelikle veri tabanımızı ve kodlarımızı oluşturmaya başlayalım.<br /><br /><p></p><img src="http://www.enginterzi.com.tr/content/binary/db01.jpg" border="0" /><br /><br />
Örnek için bir kaç veri ekleyelim.<br /><img src="http://www.enginterzi.com.tr/content/binary/db02.jpg" border="0" /><br /><br />
Veritabanımızı oluşturduktan sonra projemize bir adet global.asax dosyası ekliyoruz.
Daha sonra “items” isminde bir klasör ve içerisinede default.aspx isminde bir sayfa
ekliyoruz. Listelemek içinde ana root’taki Default.aspx sayfasını kullanacağız.Veri
tabanımız için ASP.NET Folder menüsünden APP_Data klasörü açıyoruz ve *.mdb mizi buraya
koyuyoruz birde dabase imize bağlnamakta bize kolaylık sağlayan yine APS.NET Folder
ı olan APP_Code klasörü koyuruz ve buna sağtıklayıp dataset ekleyip veri tabani bağlantılarımızı
yapıyoruz.<br /><br />
Sırasıyla Global.asax, Default.aspx ve /items/default.aspx kodlarını yazmaya başlayalım.<br /><br /><b><font color="#800080">Global.asx dosyamız </font></b><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">&lt;%@
Application Language=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"C#"</span> %&gt;<br /><br />
&lt;script runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br /><br /><br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> Application_BeginRequest(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">object</span> sender,
EventArgs e)<br />
{<br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
İlkeönce işelmleri yapmak istediğimiz sayfanın url bilgisini almalıyız.</span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Örnek olarak /items/Firat-Aydinus-Canımızı-Yakti.html gibi.</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> filePath <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Request.RawUrl;<br /><br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
IndexOf fonksiyonu ile almış olduğumuz url içinde items klasörünü arayalım.</span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Böle bir kontrol yapmadığımız takdirde tüm dosyalarda rewriter işlemi yapmak isteyecektir.</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">if</span> (filePath.IndexOf(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"/items/"</span>)
!<span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> -1)<br />
{<br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Bu kontrolude geçtikten uzantıyı belitritiyoruz burda ben html olarak belirtim.</span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Eğer istersen bu uzantıyı istediğimiz gibi değiştirebiliriz.</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">if</span> (System.IO.Path.GetExtension(filePath)
== <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">".html"</span>)<br />
{<br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Bu kontrolüde aştıktansonra verimizi çekebilmemiz için gerekli olan ID yayya ulaşmamız
gerekli.</span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//Split
fonksiyonu ile url lemizi dizi haline çevirip ID değerine ulaşmamız gerekli.</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span>[]
spltUrl <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> System.IO.Path.GetFileName(filePath).Split('<span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">-</span>');<br /><br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
Aşağıdaki işlemler ilk önce gerçek sayfa yolunu, daha sonraki parametre ile ID değerini
gönderiyoruz.</span> Context.RewritePath(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"~/items/default.aspx"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"id="</span><span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> spltUrl[0], <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">true</span>);<br />
}<br />
}<br />
}<br /><br />
&lt;/script&gt;</span></pre><p><font color="#800080"><b>Default.aspx</b></font></p><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">&lt;%@
Page Language=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"C#"</span> AutoEventWireup=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"true"</span> CodeFile=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Default.aspx.cs"</span> Inherits=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"_Default"</span> %&gt;<br /><br />
&lt;!DOCTYPE html PUBLIC <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-//W3C//DTD
XHTML 1.0 Transitional//EN"</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;<br /><br />
&lt;html xmlns=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/1999/xhtml"</span> &gt;<br />
&lt;head runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br />
&lt;title&gt;Untitled Page&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"form1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br />
&lt;div&gt;<br />
&lt;asp:Repeater ID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Repeater1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span> DataSourceID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ObjectDataSource1"</span>&gt;<br />
&lt;ItemTemplate&gt;<br />
&lt;li&gt;&lt;asp:HyperLink ID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"HyperLink1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span><br />
NavigateUrl='&lt;%# ReWriteURL(Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"idItem"</span>).ToString(),
Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span>).ToString())
%&gt;'&gt;&lt;%#Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span>)%&gt;&lt;/asp:HyperLink&gt;&lt;/li&gt;<br />
&lt;/ItemTemplate&gt;<br />
&lt;/asp:Repeater&gt;<br />
&lt;asp:ObjectDataSource ID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ObjectDataSource1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span> SelectMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"GetData"</span> TypeName=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"DataSet1TableAdapters.tblItemsTableAdapter"</span> DeleteMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Delete"</span><br />
InsertMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Insert"</span> OldValuesParameterFormatString=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"original_{0}"</span> UpdateMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Update"</span>&gt;<br />
&lt;DeleteParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Original_idItem"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Int32"</span> /&gt;<br />
&lt;/DeleteParameters&gt;<br />
&lt;UpdateParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemText"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Original_idItem"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Int32"</span> /&gt;<br />
&lt;/UpdateParameters&gt;<br />
&lt;InsertParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemText"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;/InsertParameters&gt;<br />
&lt;/asp:ObjectDataSource&gt;<br /><br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br /></span><br /></pre><p><br /></p>
Default.aspx.cs<br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Data;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Configuration;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web.Security;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web.UI;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web.UI.WebControls;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web.UI.WebControls.WebParts;<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">using</span> System.Web.UI.HtmlControls;<br /><br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span> partial <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> _Default
: System.Web.UI.Page 
<br />
{<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">protected</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> Page_Load(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">object</span> sender,
EventArgs e)<br />
{<br /><br />
}<br /><br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> ReWriteURL(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> _id, <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> _head)<br />
{<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> _strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span>.Empty;<br /><br /><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//Bu
fonksiyon ile kayıtlardan gelen başlık içerisinde bulunan</span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
ve geçerli olmayan karaterleri tarayıcıların tanıya bilmesi </span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
url lerimizin daha anlamlı hale gelmesi için gerekli replace </span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">//
işlemlerini yapacaktır.</span> _strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _head.ToLower();<br /><br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"
"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ç"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"c"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ğ"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"g"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ı"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"i"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ö"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"o"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ş"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"s"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ü"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"u"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"\""</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"/"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"("</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">")"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"{"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"}"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"%"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"&amp;"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"+"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"."</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-"</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"?"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br />
_strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _strTemp.Replace(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">","</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">""</span>);<br /><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"items/"</span><span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> _id <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-"</span><span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> _strTemp <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">".html"</span>;<br />
}<br /><br />
}<br /></span></pre><br /><br />
items/default.aspx<br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">&lt;%@
Page Language=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"C#"</span> AutoEventWireup=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"true"</span> CodeFile=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Default.aspx.cs"</span> Inherits=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"items_Default"</span> %&gt;<br /><br />
&lt;!DOCTYPE html PUBLIC <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"-//W3C//DTD
XHTML 1.0 Transitional//EN"</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;<br /><br />
&lt;html xmlns=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/1999/xhtml"</span> &gt;<br />
&lt;head runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br />
&lt;title&gt;Untitled Page&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"form1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br />
&lt;div&gt;<br />
&lt;asp:Repeater ID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Repeater1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span> DataSourceID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ObjectDataSource1"</span>&gt;<br />
&lt;ItemTemplate&gt;<br />
Item ID <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> &lt;%#Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"idItem"</span>)%&gt;&lt;br
/&gt;<br />
&lt;br /&gt;<br />
Item Head <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> &lt;%#Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span>)%&gt;&lt;br
/&gt;<br />
&lt;br /&gt;<br />
Item Detail <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> &lt;%#Eval(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemText"</span>)%&gt;&lt;br
/&gt;<br />
&lt;br /&gt;<br />
&lt;/ItemTemplate&gt;<br />
&lt;/asp:Repeater&gt;<br />
&lt;asp:ObjectDataSource ID=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"ObjectDataSource1"</span> runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span> DeleteMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Delete"</span> InsertMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Insert"</span> OldValuesParameterFormatString=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"original_{0}"</span> SelectMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"GetDataBy"</span> TypeName=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"DataSet1TableAdapters.tblItemsTableAdapter"</span> UpdateMethod=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Update"</span>&gt;<br />
&lt;DeleteParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Original_idItem"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Int32"</span> /&gt;<br />
&lt;/DeleteParameters&gt;<br />
&lt;UpdateParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemText"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Original_idItem"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Int32"</span> /&gt;<br />
&lt;/UpdateParameters&gt;<br />
&lt;SelectParameters&gt;<br />
&lt;asp:QueryStringParameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"idItem"</span> QueryStringField=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"id"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Int32"</span> /&gt;<br />
&lt;/SelectParameters&gt;<br />
&lt;InsertParameters&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemHead"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;asp:Parameter Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"itemText"</span> Type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"String"</span> /&gt;<br />
&lt;/InsertParameters&gt;<br />
&lt;/asp:ObjectDataSource&gt;<br /><br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br /></span></pre><br />
Şimdi sırasıyla ekran görüntülerimizi inceleyiniz.<br /><br /><img src="http://www.enginterzi.com.tr/content/binary/rewrite01.jpg" border="0" /><br /><br /><br /><img src="http://www.enginterzi.com.tr/content/binary/rewrite02.jpg" border="0" /><br /><br />
Anlatmış olduğum konuyu dan birşey anlmadığınızı düşünürseniz aşağıda örnek dosyalarıda
koydum indirip sisteminizde deneye bilirsiniz.<br />
Burada anlatıklarımı eğer ilk defa bu işe başlıyorsanız anlamaya bilirsiniz.<br /><br /><a href="http://www.enginterzi.com.tr/content/binary/rewriterPath.rar">Bu Dosyayı
İndirmek İçin Tıklayınız (rewriterPath.rar (16,86 KB))</a><br /><br /><address><b><font color="#000080" face="Verdana" size="4">Engin TERZİ</font></b></address><img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=791e48b0-0453-4a8d-b493-8db6ac857682" /></body>
      <title>Global.asax ile ReWriter </title>
      <guid isPermaLink="false">http://www.enginterzi.com.tr/PermaLink,guid,791e48b0-0453-4a8d-b493-8db6ac857682.aspx</guid>
      <link>http://www.enginterzi.com.tr/Globalasax+%c4%b0le+ReWriter.aspx</link>
      <pubDate>Wed, 05 Mar 2008 13:43:57 GMT</pubDate>
      <description>Çoğu sitede blog 'da karşılaştığımız sayfalama tekniğinde konu başlığı ile aynı olan sayfalrın nasıl yapıldığını düşünmüşüzdür.&lt;br&gt;
Acaba bunlar tek tek sayfa olarakmı kaydediliyor ve nasıl yapılıyor. İşte tam bu sıra
.Net teknolojisinin bize sunduğu nimetlerden yararlanmaya geldi.&lt;br&gt;
ASP.NET ile bu tarz sayfaları hazırlamamız okadar kolayki şimdi aşağıda antalacağım
yöntem ile sizde şaşıracaksınız.&lt;br&gt;
&lt;br&gt;
Peki yazıdan önce bu tarz sayfalar benim ne işime yaracak diye düşünürseniz&amp;nbsp;
tabiki herşeyden önce sitenizin arama motorlarında iyi bir yerde indexlenmesinin sağlanmasıdır.&lt;br&gt;
Arama motorları sayfalarımızı indekslerken bizim adlandırdığımız şekilde kayıtları
tutacak. Buda daha sonra yapılan arama sorgularında daha başarılı sonuçlarla, daha
öncelikli olarak listelenmesini sağlayacaktır.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#ff0000"&gt;Not: Arama sonuçlarında her zaman sayfa url’leri başlık ve
içeriğe göre daha fazla öncelik sağlar.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/b&gt;Öncelikle veri tabanımızı ve kodlarımızı oluşturmaya başlayalım.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/db01.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Örnek için bir kaç veri ekleyelim.&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/db02.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Veritabanımızı oluşturduktan sonra projemize bir adet global.asax dosyası ekliyoruz.
Daha sonra “items” isminde bir klasör ve içerisinede default.aspx isminde bir sayfa
ekliyoruz. Listelemek içinde ana root’taki Default.aspx sayfasını kullanacağız.Veri
tabanımız için ASP.NET Folder menüsünden APP_Data klasörü açıyoruz ve *.mdb mizi buraya
koyuyoruz birde dabase imize bağlnamakta bize kolaylık sağlayan yine APS.NET Folder
ı olan APP_Code klasörü koyuruz ve buna sağtıklayıp dataset ekleyip veri tabani bağlantılarımızı
yapıyoruz.&lt;br&gt;
&lt;br&gt;
Sırasıyla Global.asax, Default.aspx ve /items/default.aspx kodlarını yazmaya başlayalım.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;font color="#800080"&gt;Global.asx dosyamız &lt;/font&gt;&lt;/b&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;%@
Application Language=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"C#"&lt;/span&gt; %&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;script runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Application_BeginRequest(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
İlkeönce işelmleri yapmak istediğimiz sayfanın url bilgisini almalıyız.&lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Örnek olarak /items/Firat-Aydinus-Canımızı-Yakti.html gibi.&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; filePath &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Request.RawUrl;&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
IndexOf fonksiyonu ile almış olduğumuz url içinde items klasörünü arayalım.&lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Böle bir kontrol yapmadığımız takdirde tüm dosyalarda rewriter işlemi yapmak isteyecektir.&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (filePath.IndexOf(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"/items/"&lt;/span&gt;)
!&lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; -1)&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Bu kontrolude geçtikten uzantıyı belitritiyoruz burda ben html olarak belirtim.&lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Eğer istersen bu uzantıyı istediğimiz gibi değiştirebiliriz.&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (System.IO.Path.GetExtension(filePath)
== &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;".html"&lt;/span&gt;)&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Bu kontrolüde aştıktansonra verimizi çekebilmemiz için gerekli olan ID yayya ulaşmamız
gerekli.&lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//Split
fonksiyonu ile url lemizi dizi haline çevirip ID değerine ulaşmamız gerekli.&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt;[]
spltUrl &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; System.IO.Path.GetFileName(filePath).Split('&lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;-&lt;/span&gt;');&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
Aşağıdaki işlemler ilk önce gerçek sayfa yolunu, daha sonraki parametre ile ID değerini
gönderiyoruz.&lt;/span&gt; Context.RewritePath(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"~/items/default.aspx"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"id="&lt;/span&gt; &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; spltUrl[0], &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;true&lt;/span&gt;);&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;font color="#800080"&gt;&lt;b&gt;Default.aspx&lt;/b&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;%@
Page Language=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"C#"&lt;/span&gt; AutoEventWireup=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"true"&lt;/span&gt; CodeFile=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Default.aspx.cs"&lt;/span&gt; Inherits=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"_Default"&lt;/span&gt; %&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;!DOCTYPE html PUBLIC &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-//W3C//DTD
XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;html xmlns=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt; &amp;gt;&lt;br&gt;
&amp;lt;head runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br&gt;
&amp;lt;/head&amp;gt;&lt;br&gt;
&amp;lt;body&amp;gt;&lt;br&gt;
&amp;lt;form id=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"form1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;div&amp;gt;&lt;br&gt;
&amp;lt;asp:Repeater ID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Repeater1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt; DataSourceID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ObjectDataSource1"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;lt;li&amp;gt;&amp;lt;asp:HyperLink ID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"HyperLink1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt; 
&lt;br&gt;
NavigateUrl='&amp;lt;%# ReWriteURL(Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"idItem"&lt;/span&gt;).ToString(),
Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt;).ToString())
%&amp;gt;'&amp;gt;&amp;lt;%#Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt;)%&amp;gt;&amp;lt;/asp:HyperLink&amp;gt;&amp;lt;/li&amp;gt;&lt;br&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;lt;/asp:Repeater&amp;gt;&lt;br&gt;
&amp;lt;asp:ObjectDataSource ID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ObjectDataSource1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt; SelectMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"GetData"&lt;/span&gt; TypeName=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"DataSet1TableAdapters.tblItemsTableAdapter"&lt;/span&gt; DeleteMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Delete"&lt;/span&gt; 
&lt;br&gt;
InsertMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Insert"&lt;/span&gt; OldValuesParameterFormatString=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"original_{0}"&lt;/span&gt; UpdateMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Update"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;DeleteParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Original_idItem"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Int32"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/DeleteParameters&amp;gt;&lt;br&gt;
&amp;lt;UpdateParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemText"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Original_idItem"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Int32"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/UpdateParameters&amp;gt;&lt;br&gt;
&amp;lt;InsertParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemText"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/InsertParameters&amp;gt;&lt;br&gt;
&amp;lt;/asp:ObjectDataSource&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/form&amp;gt;&lt;br&gt;
&amp;lt;/body&amp;gt;&lt;br&gt;
&amp;lt;/html&amp;gt;&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
Default.aspx.cs&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Data;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Configuration;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web.Security;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web.UI;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; partial &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; _Default
: System.Web.UI.Page 
&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;protected&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; sender,
EventArgs e)&lt;br&gt;
{&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; ReWriteURL(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; _id, &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; _head)&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; _strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt;.Empty;&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//Bu
fonksiyon ile kayıtlardan gelen başlık içerisinde bulunan&lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
ve geçerli olmayan karaterleri tarayıcıların tanıya bilmesi &lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
url lerimizin daha anlamlı hale gelmesi için gerekli replace &lt;/span&gt; &lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;//
işlemlerini yapacaktır.&lt;/span&gt; _strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _head.ToLower();&lt;br&gt;
&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"
"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ç"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"c"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ğ"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"g"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ı"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"i"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ö"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"o"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ş"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"s"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ü"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"u"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"\""&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"/"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"("&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;")"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"{"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"}"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"%"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"&amp;amp;"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"+"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"."&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-"&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"?"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
_strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _strTemp.Replace(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;","&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;);&lt;br&gt;
&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"items/"&lt;/span&gt; &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; _id &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-"&lt;/span&gt; &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; _strTemp &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;".html"&lt;/span&gt;;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
items/default.aspx&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;%@
Page Language=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"C#"&lt;/span&gt; AutoEventWireup=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"true"&lt;/span&gt; CodeFile=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Default.aspx.cs"&lt;/span&gt; Inherits=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"items_Default"&lt;/span&gt; %&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;!DOCTYPE html PUBLIC &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"-//W3C//DTD
XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;html xmlns=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt; &amp;gt;&lt;br&gt;
&amp;lt;head runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br&gt;
&amp;lt;/head&amp;gt;&lt;br&gt;
&amp;lt;body&amp;gt;&lt;br&gt;
&amp;lt;form id=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"form1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;div&amp;gt;&lt;br&gt;
&amp;lt;asp:Repeater ID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Repeater1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt; DataSourceID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ObjectDataSource1"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
Item ID &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &amp;lt;%#Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"idItem"&lt;/span&gt;)%&amp;gt;&amp;lt;br
/&amp;gt;&lt;br&gt;
&amp;lt;br /&amp;gt;&lt;br&gt;
Item Head &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &amp;lt;%#Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt;)%&amp;gt;&amp;lt;br
/&amp;gt;&lt;br&gt;
&amp;lt;br /&amp;gt;&lt;br&gt;
Item Detail &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &amp;lt;%#Eval(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemText"&lt;/span&gt;)%&amp;gt;&amp;lt;br
/&amp;gt;&lt;br&gt;
&amp;lt;br /&amp;gt;&lt;br&gt;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;lt;/asp:Repeater&amp;gt;&lt;br&gt;
&amp;lt;asp:ObjectDataSource ID=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"ObjectDataSource1"&lt;/span&gt; runat=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"server"&lt;/span&gt; DeleteMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Delete"&lt;/span&gt; InsertMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Insert"&lt;/span&gt; OldValuesParameterFormatString=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"original_{0}"&lt;/span&gt; SelectMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"GetDataBy"&lt;/span&gt; TypeName=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"DataSet1TableAdapters.tblItemsTableAdapter"&lt;/span&gt; UpdateMethod=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Update"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;lt;DeleteParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Original_idItem"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Int32"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/DeleteParameters&amp;gt;&lt;br&gt;
&amp;lt;UpdateParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemText"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Original_idItem"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Int32"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/UpdateParameters&amp;gt;&lt;br&gt;
&amp;lt;SelectParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:QueryStringParameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"idItem"&lt;/span&gt; QueryStringField=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"id"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Int32"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/SelectParameters&amp;gt;&lt;br&gt;
&amp;lt;InsertParameters&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemHead"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;asp:Parameter Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"itemText"&lt;/span&gt; Type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"String"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/InsertParameters&amp;gt;&lt;br&gt;
&amp;lt;/asp:ObjectDataSource&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/form&amp;gt;&lt;br&gt;
&amp;lt;/body&amp;gt;&lt;br&gt;
&amp;lt;/html&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
Şimdi sırasıyla ekran görüntülerimizi inceleyiniz.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/rewrite01.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/rewrite02.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Anlatmış olduğum konuyu dan birşey anlmadığınızı düşünürseniz aşağıda örnek dosyalarıda
koydum indirip sisteminizde deneye bilirsiniz.&lt;br&gt;
Burada anlatıklarımı eğer ilk defa bu işe başlıyorsanız anlamaya bilirsiniz.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.enginterzi.com.tr/content/binary/rewriterPath.rar"&gt;Bu Dosyayı
İndirmek İçin Tıklayınız (rewriterPath.rar (16,86 KB))&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;address&gt;&lt;b&gt;&lt;font color="#000080" face="Verdana" size="4"&gt;Engin TERZİ&lt;/font&gt;&lt;/b&gt;
&lt;/address&gt;
&lt;img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=791e48b0-0453-4a8d-b493-8db6ac857682" /&gt;</description>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.enginterzi.com.tr/Trackback.aspx?guid=766e2532-6968-4584-ad6a-b102f076f857</trackback:ping>
      <pingback:server>http://www.enginterzi.com.tr/pingback.aspx</pingback:server>
      <pingback:target>http://www.enginterzi.com.tr/PermaLink,guid,766e2532-6968-4584-ad6a-b102f076f857.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Öyle bir  program düşününki kusursuz çalışıyor, tasarladığınız tüm web uygulamaları
kusursuz olarak çalışıyor. O kadar mükemmel çalışıyor ki bir d aha üzerinde hiçbir
değişiklik yapmanıza gerek kalmıyor. Herşey sorunsuz bir şekilde sonsuza kadar sürüp
gidiyor…
</p>
        <p>
Gerçek hayat ile hiçbir şekilde birbirini yansıtmayan bu düşünce hayal olarak nitelendirebilirsiniz
çünkü gerçek hayatta herşey yeni gelişmelere parallel olarak çok hızlı bir dinamizm
içinde değişmektedir. Bir konu hakkında bugün aldığınız bir karar bir kaç gün sonra
karşılaşacağınız başka bir durum nedeniyle tamamıyle hatalı çıkabilir.
</p>
        <p>
Bu durum web uygulamalarımızda kullandığımız sayfaların yerleri ve isimleri ile de
ilgidir. Hepimiz çok beğendiğimiz bir sayfa için en az bir kere de olsa “Favorilerime
Ekle” işlemini yapmışızdır. Belki ertesi gün belkide aylar sonra Favorilerimizden
o sayfanın linkine tıkladığımızda artık öyle bir sayfanın bulunmadığını belirten meşhur
“The page cannot be found” hatası ile karşılaşmışızdır.
</p>
        <p>
Bu ve bunun gibi durumlar için ASP.NET 2.0 bize URL Mapping araçını sunuyor. Bir örnek
ile gösterelim : 
</p>
        <p>
        </p>
        <img src="http://www.enginterzi.com.tr/content/binary/urlmap_1.png" border="0" />
        <br />
        <p style="font-weight: bold;">
Şekil 1.a
</p>
        <p>
Sekil 1.a da görülen projedeki MyPage.asp e erişmek istenildiğinde ~/Source/MyPage.aspx
adresinden erişilebilir( ‘~‘ karakteri projenin root unun temsil eder). 
<br /></p>
        <br />
        <img src="http://www.enginterzi.com.tr/content/binary/urlmap_2.png" border="0" />
        <br />
        <p style="font-weight: bold;">
Şekil 2.a
</p>
        <p>
Şimdi URL Mapping için gerekli eklemeleri Web.Config dosyamıza uygulayalım. Web.Config
dosyasındaki şekil 2.a daki uygulamaları yapmamız gerekiyor. Burada urlMapping enabled=”true”
ile işlemi aktif hale getiriyoruz. Add kısmındaki Url istemci tarafından Request edilen
sayfa, url. mappedUrl de gerçekte olan ve bu request in yönlendirileceği url dir. 
</p>
        <p>
Browser dan resimler.aspx e yapacağınız her request ~/Source/MyPage.aspx e yönlendirilecektir.
</p>
        <p>
Şekil 3.a MyPage.aspx dosyasının kodlarını gösternektedir.
</p>
        <br />
        <img src="http://www.enginterzi.com.tr/content/binary/urlmap_3.png" border="0" />
        <br />
        <br />
        <p style="font-weight: bold;">
Şekil 3.a
</p>
        <p>
Şekil 3.b ise browser dan aslında fiziki olarak mevcut olmayan resimler.aspx e yapılan
request i göstermektedir.
</p>
        <p>
          <br />
        </p>
        <br />
        <img src="http://www.enginterzi.com.tr/content/binary/urlmap_4.png" border="0" />
        <br />
        <p style="font-weight: bold;">
Şekil 3.b
</p>
        <br />
        <p style="font-weight: bold;">
          <br />
        </p>
        <img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=766e2532-6968-4584-ad6a-b102f076f857" />
      </body>
      <title>URL Mapping ASP.NET 2.0</title>
      <guid isPermaLink="false">http://www.enginterzi.com.tr/PermaLink,guid,766e2532-6968-4584-ad6a-b102f076f857.aspx</guid>
      <link>http://www.enginterzi.com.tr/URL+Mapping+ASPNET+20.aspx</link>
      <pubDate>Thu, 28 Feb 2008 14:04:17 GMT</pubDate>
      <description>&lt;p&gt;
Öyle bir&amp;nbsp; program düşününki kusursuz çalışıyor, tasarladığınız tüm web uygulamaları
kusursuz olarak çalışıyor. O kadar mükemmel çalışıyor ki bir d aha üzerinde hiçbir
değişiklik yapmanıza gerek kalmıyor. Herşey sorunsuz bir şekilde sonsuza kadar sürüp
gidiyor…
&lt;/p&gt;
&lt;p&gt;
Gerçek hayat ile hiçbir şekilde birbirini yansıtmayan bu düşünce hayal olarak nitelendirebilirsiniz
çünkü gerçek hayatta herşey yeni gelişmelere parallel olarak çok hızlı bir dinamizm
içinde değişmektedir. Bir konu hakkında bugün aldığınız bir karar bir kaç gün sonra
karşılaşacağınız başka bir durum nedeniyle tamamıyle hatalı çıkabilir.
&lt;/p&gt;
&lt;p&gt;
Bu durum web uygulamalarımızda kullandığımız sayfaların yerleri ve isimleri ile de
ilgidir. Hepimiz çok beğendiğimiz bir sayfa için en az bir kere de olsa “Favorilerime
Ekle” işlemini yapmışızdır. Belki ertesi gün belkide aylar sonra Favorilerimizden
o sayfanın linkine tıkladığımızda artık öyle bir sayfanın bulunmadığını belirten meşhur
“The page cannot be found” hatası ile karşılaşmışızdır.
&lt;/p&gt;
&lt;p&gt;
Bu ve bunun gibi durumlar için ASP.NET 2.0 bize URL Mapping araçını sunuyor. Bir örnek
ile gösterelim : 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/urlmap_1.png" border="0"&gt;
&lt;br&gt;
&lt;p style="font-weight: bold;"&gt;
Şekil 1.a
&lt;/p&gt;
&lt;p&gt;
Sekil 1.a da görülen projedeki MyPage.asp e erişmek istenildiğinde ~/Source/MyPage.aspx
adresinden erişilebilir( ‘~‘ karakteri projenin root unun temsil eder). 
&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/urlmap_2.png" border="0"&gt;
&lt;br&gt;
&lt;p style="font-weight: bold;"&gt;
Şekil 2.a
&lt;/p&gt;
&lt;p&gt;
Şimdi URL Mapping için gerekli eklemeleri Web.Config dosyamıza uygulayalım. Web.Config
dosyasındaki şekil 2.a daki uygulamaları yapmamız gerekiyor. Burada urlMapping enabled=”true”
ile işlemi aktif hale getiriyoruz. Add kısmındaki Url istemci tarafından Request edilen
sayfa, url. mappedUrl de gerçekte olan ve bu request in yönlendirileceği url dir. 
&lt;/p&gt;
&lt;p&gt;
Browser dan resimler.aspx e yapacağınız her request ~/Source/MyPage.aspx e yönlendirilecektir.
&lt;/p&gt;
&lt;p&gt;
Şekil 3.a MyPage.aspx dosyasının kodlarını gösternektedir.
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/urlmap_3.png" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p style="font-weight: bold;"&gt;
Şekil 3.a
&lt;/p&gt;
&lt;p&gt;
Şekil 3.b ise browser dan aslında fiziki olarak mevcut olmayan resimler.aspx e yapılan
request i göstermektedir.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.enginterzi.com.tr/content/binary/urlmap_4.png" border="0"&gt;
&lt;br&gt;
&lt;p style="font-weight: bold;"&gt;
Şekil 3.b
&lt;/p&gt;
&lt;br&gt;
&lt;p style="font-weight: bold;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.enginterzi.com.tr/aggbug.ashx?id=766e2532-6968-4584-ad6a-b102f076f857" /&gt;</description>
      <category>ASP.NET</category>
    </item>
  </channel>
</rss>