Linq

IP Address

2.Şubat.2008 C# Linq

Yerel Pc' nin Versiyon 4 Ip adresini almak.

IPHostEntry en = Dns.GetHostEntry(Environment.MachineName);
var
ip = en.AddressList.Where
      (p => p.AddressFamily == System.Net.Sockets.AddressFamily
.InterNetwork).First();
txtIP.Text = ip.ToString();

Linq to xml ile bir xml dosyası oluşturup çalışma zamanı da Treeview kontrolünde gösterelim.

//aspx
<
body>
   <form id="form1" runat
="server">
   <div
>
      <asp:TreeView ID="TreeView1" runat
="server">
         <DataBindings
>
            <asp:TreeNodeBinding DataMember="Categories" Text="Categories"
/>
            <asp:TreeNodeBinding DataMember="Category" TextField="CategoryName" ValueField="CategoryID"
/>
         </DataBindings
>
      </asp:TreeView
>
   </div
>
   </form
>
</
body>

//cs

private
void bindTree()
{
   northwindDataContext db = new northwindDataContext
();
   string path = Server.MapPath(".\\App_Data\\data.xml"
);
   if (!File
.Exists(path))
   {
      XDocument xdoc = new XDocument
(
         new XDeclaration("1.0", "utf-8","yes"
),
         new XElement("Categories"
,
            from p in
db.Categories
            orderby
p.CategoryName
            select
               new XElement("Category"
,
               new XAttribute("CategoryID"
, p.CategoryID),
               new XAttribute("CategoryName"
, p.CategoryName))));
      xdoc.Save(path);
   }
   XmlDataSource xd = new XmlDataSource
();
   xd.ID = "xid1"
;
   xd.DataFile = path;
   this
.form1.Controls.Add(xd);
   TreeView1.DataSourceID = "xid1"
;
}

Şöyle bir düşündüğümüzde veritabınında bulunan herhangi bir tablonun verilerini Xml biçiminde dosyaya yazmanın kaç yolu vardır acaba? Sabahları genelde işe erken gelirim, 1.5 saat kadar :).
Oturdum bir kaç örnek yaptım, paylaşıyorum tüm dünya ile. (Özgüvenin tavan yaptığı an)

Aklıma gelen ilk yöntem DataTable nesnesini kullanmak. Bu nesneyi sadece yazmak için kullanmak kaynak tüketimi açısından çok iyi bir seçim olmaz fakat kullanım kolaylığı açısında tercih edilebilir.

DataBase 2 Xml
 

Diğer bir yöntem ise henüz Veri Katmanında (DataLayer) iken oracıkta xml formatına dönüştürüp XmlTextWriter ile cayır cayır yazmak.

DataBase 2 Xml

Son yöntem ise daha önce şu yazıda kullandığım teknik ile (attribute yerine bu sefer node kullandım) XDocument ile manuel olarak xml dosyasını oluşturmak. Sanırım en zoru bu. Yanlış anlaşılmasın benim için kolay da hani ilk yapan için diyorum.

DataBase 2 Xml

Çok yakın ve kadim bir dostum için araştırırken farkettim ve paylaşmak istedim.
ListView kontrolü içinde ki verileri gruplayarak göstermek. DataList kontrolündeki RepeatColums özelliğini kullanmak gibi fakat birazcık farklı :)

Div etiketleriyle Listview'e şablon hazırlamak lazım.

ListView

Veri kaynağı için basit ve hızlı bir çözüm, dosyalar.

DataSource - Linq

Dosyaları biraz süslü gösterelim.

Icon Output

Sonuç;

ListView