LLBLGen ile Clone Entity

Posted by: admin in Asp.Net, C#, Genel 1 Comment »

Yazılımcılar çok nadir de olsa aynı içeriğe sahip bir sınıfı birden fazla defa kaydetme ihtiyacı duyabiliyor.
LLBLGen sayesinde bunun için aynı sınıfın defalarca instance’ını alıp kopyalama işlemleri yapmamıza gerek kalmadan sadece 6 satır fazla kod yazarak istediğmizi elde etmiş oluyoruz.

İşte hayatı yazılımcıya kolaylaştıran kodlar ,

        var copiedCase = new CaseEntity(id);

        if (copiedCase != null)
        {
            copiedCase.IsNew = true;
            copiedCase.Fields.IsDirty = true;
            for (int i = 0; i < copiedCase.Fields.Count; i++)
            {
                copiedCase.Fields[i].IsChanged = true;
            }

            //Burada da yaptığımız gibi nesnemizdeki istediğimiz bilgileri de ayrıca değiştirebiliyoruz.
            copiedCase.OpenDate = DateTime.Now;

            copiedCase.Save();
        }

Asp.Net DataList Sayfalama

Posted by: admin in Genel 2 Comments »

Herkese selamlar ,
Yaptığımız sitelerde getirdiğimiz sonuçlar her zaman tek sayfaya sığmıyor ve biz de sonuçlarımızı sayfalama yaparak göstermek durumunda kalıyoruz.
Sayfalama olayını basitçe anlatmak gerekirse sayfamıza DataList‘i attıktan sonra ona bir datasource bağlamıyoruz, bunun yerine kod tarafında bir “PagedDataSource” oluşturuyoruz.

Sayfalamayı göstermek için Aspx sayfamıza 2 adet button (cmdPrev ,cmdNext ) ve aralarına da hangi sayfada olduğumuz bilgisini verecek olan label ekliyoruz.

Sonra PagedDataSource‘ a aşağıda yazan özelliklerimizi veriyoruz

void Doldur()
{
        PagedDataSource pd = new PagedDataSource();
        pd.AllowPaging = true;
        pd.PageSize = 8;
        pd.DataSource = DATASOURCE;
        pd.CurrentPageIndex = CurrentPage;
        Label1.Text = "Sayfa: " + (CurrentPage).ToString();
        cmdPrev.Enabled = !pd.IsFirstPage;
        cmdNext.Enabled = !pd.IsLastPage;

        dataListSonuc.DataSource = null;
        dataListSonuc.DataSource = pd;
        dataListSonuc.DataBind();
}

-AllowPaging özelliği sayfalamaya izin vermek
-PageSize sayfada gösterilecek olan toplam veri sayısı
-Datasource verikaynağı biz generic bir liste bağladık
-CurrentPageIndex bulunduğu sayfayı veren property — birazdan yazacağız

PagedDataSource nesnemizin IsFirstPage methodu bool dödüren bir metod bu metodu cmdPrev butonumuzun Enabled’ına veriyoruz ki ilk sayfadaysak butonumuzu kapayalım.
Aynı şekilde PagedDataSource nesnemizin IsLastPage methodu bool dödüren bir metod bu metodu cmdNext butonumuzun Enabled’ına veriyoruz ki son sayfadaysak butonumuzu kapayalım.

Bunları ayarladıktan sonra DataList Kontrolün data source özelliğine Oluşturduğumuz PagedDataSource kontrolünü veriyoruz.

Bittimi?
Henüz değil.. Bir kaç basit kod daha yazmalıyız.

cmdNext ve cmdPrev butonlarına basılınca gerçekleşecek olan eylemler

protected void cmdPrev_Click(object sender, EventArgs e)
{
    CurrentPage -= 1;
    Doldur();
}
protected void cmdNext_Click(object sender, EventArgs e)
{
    CurrentPage += 1;
    Doldur();
}

Son olarak tabiki şu CurrentPage Property ‘iyazalım

public int CurrentPage
{
    get
    {
        object o = this.ViewState["_CurrentPage"];
        if (o == null)
            return 0;   // yoksa ilk sayfayı göster
        else
            return (int)o;
    }

    set
    {
        this.ViewState["_CurrentPage"] = value;
    }
}

Burada Datalist Kontrolümüze PagedDataSource ‘u bağladıktan sonra bizim yazdığımız doldur metodu çalışcaktı şimdi sayfa açıldı ve metodumuz çalışmaya başladı ve biz metodda yukardaki property’i kullanmıştık
işte yukardaki kodlara bakarsak eğer ilk defa çağırılıyorsa viewstate’i oluşturup bize 0 dönecekki bu ilk sayfa ondan sonra her sayfa değiştiğinde viewstate’e bulunduğu sayfayı atacak ki sayfayı ileri geri yaptığımızda bulunduğumuz sayfayı bilelim

C# ile barkod oluşturmak ve bunu basmak aslında atla deve değil bunun için barkod oluşturma algoritmasını kodlamadan, elimizde var olan dll li kullanarak oluşurduğumuz barkodu basabilmek için çok basit bir yöntemden bahsedebilirim.
Öncelikle bu örnekte kullanacağımız yazıcımız asıl işi zaten barkod yazmak olan Zebra LP 2844
ancak yazının sonunda vereceğim linkteki kodları incelediğinizde barkod yazımını normal bir yazıcıdan da yapabileceğimiz göreceksiniz.
Yapmamız gereken PrintDocument nesnesini kullanmak ,basılmasını istediğimiz barkod numarasını dll imizin istediği kritere göre ona vermek ve Document_PrintPage metodunun PrintPageEventArgs ını kullanarak istediğimiz şekilde barkodumuzu çizdirmek.

Kodları tekrar yazmak yerine benimde severek takip ettiğim Feyzullah Bigalı’nın blogundaki örneğe bakın

Mobil cihazlardan uzaktaki veritabanına sorgu atmak için izlenmesi gereken basit yöntem,

//Önce parametremizi tüm özellikleriyle tanımlıyoruz ve komutumuza ekliyoruz.
//ayrıca önemli bir hususta SqlDbType yerine DbType'ı kullanıyor olmamız.

            SqlParameter sqlParam = new SqlParameter();
            sqlParam.ParameterName = "@CuvalID";
            sqlParam.DbType = DbType.Int32;
            sqlParam.Value = CuvalID;
            komut.Parameters.Add(sqlParam);

aslında çok kolay gibi görünüyor ama mobil cihazları programlarken daha deploy edemeden kodlarınız patlayınca hatanın nereden kaynaklandığını çözmek biraz zaman alıyor.

Merhaba dünya!

Posted by: admin in Genel No Comments »

Herkese yeniden merhaba.