17 Eylül 2013 Salı

Devexpress - CheckedListBox Kullanımı (DataBound Bağlantılı)

Merhabalar,


bu makalede devexpress'in checkedListbox kullanımına değinecek ve databound şeklinde nasıl kullanacağımızı öğrenmeye çalışacağız.bilindiği üzere checkedlistbox kontrolü sayesinde birden fazla özellik arasından çeşitli seçimler yapabiliyoruz.Özellikle çoklu seçim yapılabilen işlemlerde Microsoft'un standart kontrollerine göre çok daha efektif çalıştığını söyleyebilirim.lafı fazla uzatmadan bu nesnenin üzerinde yaptığımız işlemleri veri tabanına nasıl yansıtırız onu inceleyelim;


Bir form açıp checkedlistbox atalım ve Dock özelliğini 'True' hale getirelim.



Sırada veritabanımızdan ilgili dataları çekip kontrole bağlamamız kaldı.Formumuzun Load Kısmına gelip aşağıdaki kodları yazıyoruz.
SqlConnection con = new SqlConnection(@"Data Source=.\;Initial Catalog=test_db;Integrated Security=True");
con.Open();
SqlCommand command = new SqlCommand("SELECT musteri_adi,Aktif FROM musteri", con);
SqlDataReader reader = null;
reader = command.ExecuteReader();
while (reader.Read()) checkedListBoxControl1.Items.Add(new CheckedListBoxItem(reader["musteri_adi"].ToString(), (bool)reader["Aktif"]));
reader.Close();
con.Close();


Bu kısmın üzerinde çok fazla durmak istemiyorum bu makalede.Data işlemleri ile ilgili diğer makalelerimde geniş bilgi bulabilirsiniz.Load kısmında her Datarow için CheckedListbox kontrolüne yeni bir
item ekliyoruz,Value Özelliğini ve CheckState durumunu veritabanından aldığımız DataRow değerlerine göre ayarlıyoruz.Sonuçta Aşağıdaki Görüntüyü elde etmemiz gerekiyor.

Şimdide Değişiklikleri veritabanımıza yansıtacak olan kod bloğunu yazalım;

checkedListBoxControl'ün ItemCheck event'ına aşağıdaki kod bloğunu yazıyor;

SqlConnection con = new SqlConnection(@"Data Source=.\;Initial Catalog=test_db;Integrated Security=True");
con.Open();
SqlCommand command = new SqlCommand("UPDATE musteri SET Aktif='" + Convert.ToBoolean(e.State) + "' WHERE musteri_adi='" + checkedListBoxControl1.GetItemValue(e.Index) + "'", con);
command.ExecuteNonQuery();
con.Close();
Örnek olması açısından mümkün olduğunca basit tuttum örneği anlaşılır olması açısından.siz daha farklı şekillerde kullanımını sağlayabilirisiniz.



Bir Sonraki Makalemizde Görüşmek Üzere

3 Eylül 2013 Salı

SQL Server Mail Hizmetini Kullanmak

Merhaba;

Bu makalemde sql server üzerinden nasıl mail gönderebileceğimiz konusunda bilgi sahibi olmaya çalışacağız.bilgi sistemleri ortamında haberleşmenin temel yollarından birisi de e-mail dir kuşkusuz.büyük çapta bir proje geliştiriyorsanız kullanıcıları mail ile çeşitli konularda bilgilendirmek isteyebilirsiniz.bu makalenin yazımında bu kriter göz önüne alınmıştır.


SQL Server ortamında mail gönderebilmek için kullanabileceğimiz sp_sendmail Prosedürü bulunmaktadır.Bu prosedür SQL Server ile beraber gelmektedir.Prosedürü kullanabilmek için Database Management içerisinden Database Mail özelliğini aktif etmeniz ve geçerli bir hesap tanımı yapmanız gerekmektedir.Lakin prosedür tarafından gönderilen mailler bu Mail hesabı üzerinden gitmektedir. "Send Test Mail" diyerek hesap ayarlarınızın doğruluğunu kontrol edebilmeniz mümkündür.


Aşağıdaki T-SQL Kod parçası sp_sendmail fonksiyonunun kullanımına Örnektir;


CREATE TRIGGER [dbo].[MailTrigger] 
ON [dbo].[FATURALAR]
AFTER INSERT -- hangi işlemlerde triggerin çalışacağını belirliyoruz, insert, update, delete gibi
AS
DECLARE @SiraNo INT
DECLARE @FaturaNo NVARCHAR(50)
DECLARE @Icerik NVARCHAR(50)
BEGIN

Select @SiraNo = SiraNo From Inserted
Select @FaturaNo = Cari From Inserted
set @Icerik =CAST(@SiraNo AS NVARCHAR) + 'Numaralı Fatura Ödemesi Gerçekleştirildi'

exec msdb.dbo.sp_send_dbmail
@profile_name='MAILPROFILE',
@recipients='ALICI ADRESLERİ','ALICI ADRESİ2','ALICI ADRESİ3'
@subject='EMAİL KONUSU',
@body=@Icerik -- EMAİL İÇERİĞİ
END
GO

Burada Bir Mail trigger'ı tanımlanmış ve FATURALAR tablosuna atanmıştır.Faturalar tablosuna yapılan kayıt(INSERT) sonrasında mail trigger'ı faaliyete geçecek ve "recipients" kısmında belirtilen mail adreslerine Tanımladığınız Mail Hesabı üzerinden mail gönderimi yapacaktır.

Bu Makalenin konusu olmamakla birlikte madem yazdık o zaman hatırlatmasınıda yapalım ;
Select @SiraNo = SiraNo From Inserted
Select @FaturaNo = Cari From Inserted

After INSERT Trigger'ı tanımladığımız için "From Inserted" tanımlaması ile INSERT edilen kaydın ilgili kolonlarındaki bilgileri almış olduk.

Bu Makalede yanlızca Database Mail üzerinden Mail gönderimii incelenmiş ve Database Mail Yapılandırmasını bildiğiniz varsayılmıştır.Database Mail yapılandırması için Aşağıdaki Kaynaklara Göz atabilirsiniz.



Visual C# - .NET Otomatik Class Oluşturma

Merhaba;

Bildiğiniz üzere c# %100 nesne yönelimli bir programlama dili.haliyle herşey bir nesneden ibaret.programlama yaparken nesnesel bir yapı kullandığımızdan dolayı çoğu kez veritabanındaki tablolara karşılık gelen classlar oluşturmamız gerekir.Bir takipçimin isteği üzerine hazırlamış olduğum aşağıdaki t-sql kod bloğu sayesinde parametre olarak verdiğiniz tablo adına ait kolonları sizlere field olarak getirebilmektedir.



CREATE FUNCTION [dbo].[CLASS_Olustur](@TabloAdi AS NVARCHAR(50)) RETURNS @DonusTablo  TABLE(Name NVARCHAR(50))
AS BEGIN
INSERT INTO @DonusTablo(Name)
SELECT * FROM (
SELECT 'Public '+CASE
WHEN TipAd='nvarchar' then 'string'
WHEN TipAd='char' then 'char'
WHEN TipAd='nchar' then 'char'
WHEN TipAd='varchar' then 'string'
WHEN TipAd='sysname' then 'string'
WHEN TipAd='xml' then 'string'
WHEN TipAd='image' then 'string'
WHEN TipAd='date' then 'DateTime'
WHEN TipAd='datetime' then 'DateTime'
WHEN TipAd='smalldatetime' then 'DateTime'
WHEN TipAd='tinyint' then 'bool'
WHEN TipAd='smallint' then 'bool'
WHEN TipAd='real' then 'decimal'
WHEN TipAd='money' then 'decimal'
WHEN TipAd='float' then 'decimal'
WHEN TipAd='bit' then 'bool'
WHEN TipAd='text' then 'string'
WHEN TipAd='int' then 'int'
WHEN TipAd='bigint' then 'UInt64'
WHEN TipAd='decimal' then 'decimal'
END +' '+KolonAd+';' AS Degisken
FROM(SELECT col.name AS KolonAd,tip.name AS TipAd FROM sys.all_columns AS col
INNER JOIN sys.tables AS tp ON
col.object_id=tp.object_id AND tp.name=@TabloAdi
INNER JOIN sys.types AS tip ON
col.user_type_id=tip.user_type_id) AS VW1) AS VW2
RETURN END

GO





Paylaşımlarınızda lütfen kaynak belirtiniz.Emeğe Saygı.....
Kolay Gelsin.