Çalışmalarımızda birden fazla kaydın listelendiği noktalarda sayfalama işlemine ihtiyaç duyuyoruz. Bu işlemleri repeater ya da datalist kullanarak bir takım kod yapılarından geçirilerek sayfalama işlemini sonlandırabiliyoruz.

Bu işlemler projelerimizde belli aşamalardayken ekstra olarak zamanımızı alabiliyor ve bu doğrultuda CollectionPager.dll dosyası imdadımıza yetişiyor. Projemize dosyamızı dahil ettikten sonra kolaylıkla repeater ya da datalist ile sayfalama işlemi yapabiliyoruz. Bir örnekle açıklayalım.

 

Öncelikle bu adresten dosyamızı upload edelim.

 CollectionPager.dll (32,00 kb)

 

Dosyamızı upload ettikten sonra Toolbox’a dosyamızı import ediyoruz.Import işleminin ardından eklemiş olduğunuz dll dosyamızı projemize sürükleyip ekliyoruz ve sayfalama işlemini yapmak istediğiniz item’i seçiyoruz ben repeater’i seçtim .Gerekli database bağlantılarını ve Web.config ayarlarını yaptıktan sonra işlemlere geçebiliriz.

 

Default.aspx

    <asp:Repeater ID="Repeater1" runat="server">

    <ItemTemplate>

    <%#DataBinder.Eval(Container.DataItem,"yorum") %><br />

    </ItemTemplate>

    </asp:Repeater>

   

        <br />

        <cc1:CollectionPager ID="CollectionPager1" runat="server" BackText="« Önceki"

            FirstText="İlk" LabelText="Sayfa:" LastText="Son" NextText="Sonraki »"

            PageNumbersDisplay="Numbers" ResultsFormat="Sayfalar {0}-{1} (Toplam:{2})"

            PageSize="5" SectionPadding="10">

        </cc1:CollectionPager>

 

CollectionPager dosyamız üzerinde sayfalama miktarı vb. ayarları yapabiliyoruz.Sayfamızdaki düzenlemeleri yaptıktan sonra şimdi de CollectionPager’i repeater ile etkileşim oluşturacağımız kodları yazalım.

Default.cs

 

protected void Page_Load(object sender, EventArgs e)

    {

        if (Page.IsPostBack == false)

        {

 

            IcerikGetir();

       

        }

 

 

    }

 

    protected void IcerikGetir()

    {

        SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);

        SqlCommand cmd = new SqlCommand("SELECT * FROM urunyorum",cnn);

        SqlDataAdapter da = new SqlDataAdapter(cmd);

        DataTable dt = new DataTable();

        da.Fill(dt);

        cnn.Open();

        CollectionPager1.DataSource = dt.DefaultView;

        CollectionPager1.BindToControl = Repeater1;

        Repeater1.DataSource = CollectionPager1.DataSourcePaged;

        Repeater1.DataBind();

        cnn.Close();

   

    }

 

IcerikGetir adından bir fonksiyon oluşturdum bu fonksiyon içinde urunyorum tablosundaki verileri çekiyoruz ve ardından CollectionPager’ın datasource ve databind kontrollerinin görevlerini yerine getirmeleri için repeater kontrolümüze bağlıyoruz.

Bu işlemlerin ardından projemizi çalıştırıyoruz.

Gördüğünüz gibi sayfalama işlemini pratik olarak gerçekleştiriyoruz.

CollectionPager ile artık sayfalama işlemlerinizi kolaylıkla gerçekleştirebilirsiniz.

 

Olcay KÜK



Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

ASP.NET ile MYSQL ve Dosya İşlemleri

20 Haz 2009 In: ASP.NET

 

 

 

 

 

 

 

 

 

 

Bazı uygulamalarımızda genelde tercih edilen mssql dışındaki veritabanlarınlarıyla da işlem yapmamız gerekebiliyor.

Bu gibi durumlar için bir asp.net projesinde mysql kullanarak veritabanından aldığımız bilgileri bir metin belgesine (.txt) aktarmayı inceleyeceğiz.


Projemize geçmeden önce mysql.dll dosyasını çalışmamıza import etmemiz gerekiyor.Mysql işlemlerini bu dll dosyamız sayesinde gerçekleştireceğiz.

MySql.Data.dll (256,00 kb)

Import işleminin ardından using System.IO; kütüphanesini çalışmamıza ekliyoruz.

Web.Config dosyamızın içine de  appSettings olarak aşağıdaki gibi bir tanımlama gerçekleştiriyoruz.

<appSettings>
        <add key="ConnectionString" value="Database=ok_forum;Data source=212.118.25.29;User id=forum;Password=123456"/>
  </appSettings>

Page_Load içine  SQL sorgumuzu belirtip (Örnek olarak ben bir ipb forum üyeler tablosuna bağlandım) , ardından dataset ile de connectionstringimizi belirtiyoruz.

Bir Datatable oluşturup Datasetten bilgilerimizi tutuyoruz.Ardından bir FileStream oluşturuyoruz.

Bu işlem ile de gelen bilgilerimizi bir metin belgesine (.txt) aktaracağız.StreamWriter ile de verilerimizi log.txt adındaki dosyasının içine eklemesini sağlıyoruz.

Datatable aracılığıyla tuttuğumuz verilerimizi bir küme haline getirip her satırı bir foreach yapısı kullanarak dosyasının içine yazmasını sağlayacağız.

Bizim bu örnekte istediğimiz ibf_members tablosu altındaki kullanıcıların sadece email adreslerini metin belgesine aktarmak olduğu için foreach yapısı altında bulunan row["email"].ToString() ile sadece belirttiğimiz column'a ait verileri çekiyoruz.

Tüm bu işlemleri sonlandırdığımızda bir kod bütünü olarak aşağıdaki yapıyı elde edeceğiz.

// SQL sorgumuzu oluşturuyoruz ve Dataset'e aktarıyoruz.

      int i = 0;
      string cmd = "SELECT * FROM ibf_members ";
      DataSet ds = MySql.Data.MySqlClient.MySqlHelper.ExecuteDataset(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"],cmd);

// Datatable oluşturuyoruz ve Datasetteki verilerimizi depoluyoruz.

     DataTable dt = new DataTable();
      dt = ds.Tables[0];
     

// FileStream nesnesi oluşturuyoruz ve log.txt adındaki dosyayı açıyoruz.StreamWriter ile de  o dosyaya yazıyoruz.



      FileStream fs = new FileStream(Server.MapPath("~/log.txt"), FileMode.Open);

      StreamWriter sw = new StreamWriter(fs);

// Foreach yapısı oluşturup verilerimizi kümeliyoruz.Her satırı item olarak alıyoruz ve ve array nesnesine aktarıyoruz.


      foreach (DataRow row in dt.Rows)
      {
        object[] array = row.ItemArray;

          sw.WriteLine(row["email"].ToString());
      

      }

// Dosya işlemlerimizi sonlandırıyoruz.


      sw.Flush();

      sw.Close();

 

Böylelikle asp.net C# kullanarak bir mysql veritabanına bağlanıp belirttiğimiz tablodaki verileri bir text belgesine aktarmayı incelemiş olduk.

Kolay Gelsin .

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

ASP.NET ile MultiUpload

1 Nis 2009 In: ASP.NET

Upload işlemlerinde birden fazla dosya upload etmemiz gereken durumlar ile karşılaşırız.
Bu makalemiz ile birden fazla dosya aynı anda nasıl upload edilir hep birlikte göreceğiz.
Uygulamamızda basit olarak yükleyeceğimiz dosyaların içeriğinin ve formatının bir resim dosyası olmasını kontrol ediyoruz.
Sizler kendi uygulamanızda gerekli olan uzantılara göre değiştirebilirsiniz.Projemize 5 adet FileUpload ekleyerek işe başlayabiliriz.Örneği geliştirip tüm resim formatları için uygulayabilirsiniz.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

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

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
      try
      {
        string ext = Path.GetExtension(FileUpload1.FileName + FileUpload2.FileName + FileUpload3.FileName + FileUpload4.FileName + FileUpload5.FileName).ToLower();
      HttpFileCollection up = Request.Files;
      if (FileUpload1.PostedFile.ContentType == "image/jpeg" || FileUpload2.PostedFile.ContentType == "image/jpeg" || FileUpload3.PostedFile.ContentType == "image/jpeg" || FileUpload4.PostedFile.ContentType == "image/jpeg" || FileUpload5.PostedFile.ContentType == "image/jpeg")
       
       
        for (int i = 0; i < up.Count; i++)
      {
        HttpPostedFile hp = up[i];
        if (hp.ContentLength > 0)
        {
          hp.SaveAs(Server.MapPath("uploads") + "\\" + Path.GetFileName(hp.FileName));
          Label1.Text = "Dosyanız başarıyla yüklendi.";

        }
      
      }
     
      else {
          Label1.Text = "Lütfen geçerli bir resim dosyası seçiniz." ;
        }
      }
        catch(Exception ex)
       
         {
          Label1.Text = "Hata oluştu." + ex.Message;
        }
      }
    }
  }

 

Proje dosyasınızda uploads adında bir klasor oluşturun.Eğer hostinginiz üzerinden kullanacaksanız uploads klasorune yazma izni vermeyi unutmayın.

Kolay gelsin ...

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Web.Config ile Upload Limitini Arttırmak

23 Oca 2009 In: ASP.NET

 

Uygulamalarımızda upload işlemleri gerçekleştirirken upload limitlerinden kaynaklanan problemler yaşabiliyoruz.Bu problemleri web.config içine tanımlayacağını bazı değerler ile üstesinden gelebilirsiniz.

<httpRuntime executionTimeout="1200" maxRequestLength="102400" useFullyQualifiedRedirectUrl="false" minFreeThreads="8"minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />

web.config dosyasına yerleştirdiğinizde maxRequestLength olarak 102400 olarak belirlediğimiz değere karşılık olarak 100 mb boyutunda dosyaya kadar upload işlemi gerçekleştirilir.

Maximum request length exceeded hatasının kaynağı olarak da problemi çözebilirsiniz. Default olarak gelen 4 M'lık limite de bağlı kalmadan uygulamalarınızı geliştirebilirsiniz.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

XML Tabanlı Kaynaklara Erişim

18 Oca 2009 In: ASP.NET

 http://rdr.zazzle.com/img/imt-prd/pd-145763729167498250/isz-m/tl-XML+--+Not.jpg

 

 

 

 

 

 

 

 

 

 

 

Bazı durumlarda XML ile paylaşılan öğelere ulaşmamız gerekiyor.

Bir rss reader uygulamasının yapacağı görevi daha basite indirgeyerek web sitemiz bünyesinde de kullanmak isteyebiliriz.

Bu durumlar için basit bir kod yapısı ile kolayca XML verilerinizi okuyabilirsiniz. XML işlemlerini sorunsuz olarak gerçekleştirmek için using System.Xml; kütüphanesini eklemeyi unutmayın.

 

            XmlDocument kaynak = new XmlDocument();
            kaynak.Load("http://www.siteadresiniz.com/haberler.xml");
            XmlNodeList baslik = kaynak.GetElementsByTagName("title");
            XmlNodeList link = kaynak.GetElementsByTagName("link");
            for (int i = 2; i < baslik.Count; i++)
            {
                Response.Write("<a target=\"_blank\" href=\"" + link[i].InnerText + "\">" + baslik[i].InnerText + "</a><br>");
            }

 

Uygulamanızda Page_Load olarak ya da istediğiniz noktada kullanabilirsiniz.Uygulama çalıştığında siteadresiniz.com/haberler.xml sayfasından title,link elementlerinin sahip olduğu değerleri alıp sayfanıza yansıtacaktır.Kolay gelsin ...

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Blog'dan

Biraz yazılım,biraz güvenlik,biraz da hayattan karalamalar ...


İletişim: ok@olcaykuk.com

Merak ettiklerini haydi sor :)