28 Temmuz 2010 Çarşamba
DataTable Kolay Sıralama (So Easy to sort DataTable)
view.Sort = "LAST_NAME";
DataTable sorted = view.ToTable();
29 Mart 2010 Pazartesi
C# Trick : Rtf tag temizleme (Clear RTF tags)
Bu işlemi regular expression 'lar ile yapabileceğiniz gibi, daha basit olan başka bir yöntemi de kullanabilirsiniz.
Regex Örneği
Regex regexObject = new Regex(@"\\\w+|\{.*?\}|}");
subText = regexObject.Replace(subText, "");
subText = subText.Replace("}", "");
subText = subText.Replace("\r", "");
subText = subText.Replace("\n", "").Trim();
Daha Basit Bir Yol
System.Windows.Forms.RichTextBox rtf = new System.Windows.Forms.RichTextBox();
rtf.Rtf = subText;
subText = rtf.Text;
16 Mart 2010 Salı
MS Sql : Farklı dil setlerine sahip alanları birbirine bağlamak.
Joining different collation set databases
Cannot resolve the collation conflict between "Turkish_CI_AS" and "SQL_Latin1_General_CP1254_CI_AS" in the equal to operation.
Eğer bu hatayı alıyorsanız sizde aynı sorunu yaşamaktasınız. İki farklı veritabanı mevcut ve bu veritabanlarının dil setleri (collation) birbirinden farklı.
Bu durumda yapılması gereken dil setlerini, sorgu esnasında eşitlemek. Örnek kod aşağıdaki gibidir.
LEFT JOIN vW_OTHERITEMCODES OTH ON OTH.FCODE = FOMS.FCODE COLLATE Turkish_CI_AS AND OTH.CLCODE = CLC.CLCODE COLLATE Turkish_CI_AS
vW_OTHERITEMCODES : Başka veritabanından veri çeken view.
FCODE kolonu : Nvarchar bir alan.
CLCODE kolonu : Nvarchar bir alan.
.Net Exe'sini Ağdaki bilgisayardan çalıştırmak
(.Net exe run from network)
Diğer dillerin çalıştırılabilir dosyalarında (bazı özel durumlar hariç), ağ üzerindeki bir bilgisayardan paylaşım vasıtasıyla bu dosyaları çalıştırmak mümkündü. Fakat aynı durum Windows Xp'de, Microsoft .Net ile yazılmış olan bir çalıştırılabilir dosyada karşıma problem olarak çıktı.
Daha sonra yaptığım araştırmalarla bunun bir güvenlik kısıtlamasından ileri geldiğini anladım. Yapılması gereken ilgili uzak klasörü, istemcide yetkili kılmak.
Komut satırından girilmesi gereken komut aşağıdaki gibidir.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag All_Code -url file://server/folder/* FullTrust -n AppName -q
Umarım faydalı olur.
15 Mart 2010 Pazartesi
MS Sql : Kolondaki veriyi virgülle ayrılmış satıra dönüştürmek.
(Comma Separated Values (CSV) from Table Column)
Create table CRM_CON
(
CONID int identity(1,1) primary key,
CNAME nvarchar(50)
)
Create table CRM_GRP
(
GRPID int identity(1,1) primary key,
GDEFN nvarchar(50)
)
Create table CRM_GRPTR
(
GTRID int identity(1,1) primary key,
CONID int,
GRPID int
)
insert into CRM_CON values ('Umut')
insert into CRM_GRP values ('Destek')
insert into CRM_GRP values ('Yazılım')
insert into CRM_GRP values ('Genel')
insert into CRM_GRPTR values (1,1)
insert into CRM_GRPTR values (1,2)
insert into CRM_GRPTR values (1,3)
Şeklinde bire çok ilişkili iki tablomuz olsun. İstenen veri formatı ;
AD Gruplar
Umut | Yazılım,Genel,Destek |
Böyle bir durumda kullanıcının gruplarını bir sub query ile çektiğimizi varsayalım. CRM_GRP tablosundan gelecek olan veri birden fazla olduğundan bu formatta yazdırmak olanaksız görünüyordu.
Tabiki veri, kod tarafında işlenerek bu formata dönüştürülebilir. Fakat sorgunuz direk olarak rapora gidiyorsa veya bir şekilde işleyemeyeceğiniz bir durumda ise ihtiyaç bu noktada başlıyor.
Ben ilk olarak içerisinde kursor barındıran bir fonksiyon yazmayı düşündüm. Nvarchar bir değişkene kolondaki veriyi ekleyip bu değişkeni fonksiyondan döndürmek bana mantıklı geldi. Fakat işlem başarız oldu. Daha sonra biraz araştırmadan sonra daha akıllıca bir yöntem buldum ve sizlerle paylaşmak istiyorum.
SELECT c.CNAME,
(SELECT SUBSTRING((SELECT ',' + g.GDEFN
FROM CRM_GRP g
WHERE g.GRPID in (SELECT GRPID FROM CRM_GRPTR gtr WHERE gtr.CONID=c.CONID)
ORDER BY g.GDEFN
FOR XML PATH('')),2,200000) )AS CSV
FROM CRM_CON c
Umarım faydalı olur.
Hello World
Her programlama dilinde olduğu gibi bizde merhaba dünya (hello world) ile bloğumuzun açılışını yapalım. Vatana millete hayırlı olsun.
Aklıma geldikçe, ihtiyaç duydukça kullandığım bir takım trick (püf nokta) burada paylaşmaya çalışacağım.