System.Data.DataView Dv = ds.Tables[0].DefaultView; DataTable dt = Dv.ToTable(true, "StandardUN", "Aciklama");
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
21 Ocak 2011 Cuma
DataSet'de Select Distinct
Önce DataView'e çevirip, daha sonra ToTable() metodu ile ilk parametrede distinct yapılıp yapılmayacağı bilgisini ve diğer parametrelerde de sütun isimlerini göndererek datatable'ı alabiliyoruz.
14 Temmuz 2010 Çarşamba
Windows Servis Uygulamasında HttpWebResponse Alma
Daha önce Windows uygulaması olarak yazdığım kodları Windows servise geçirince response boş geliyordu. Örnek kodlar aşağıdadır:
Bunun sebebi windows formda user account'ının, windows serviste ise network account'ının kullanılmasıymış. Çözüm için, ProjectInstaller.cs içindeki serviceProcessInstaller özelliklerinden Account özelliğini "User" olarak değiştirmek gerekiyor.
1: HttpWebRequest wreq = (HttpWebRequest)System.Net.WebRequest.Create(url);
2: System.Net.WebProxy pry = new System.Net.WebProxy("x.x.x.x", 80);
3: pry.Credentials = System.Net.CredentialCache.DefaultCredentials;
4:
5: wreq.Proxy = pry;
6: wreq.Method = "GET";
7: wreq.Timeout = 3000;
8: HttpWebResponse wr = (HttpWebResponse)wreq.GetResponse();
9: if (wr.StatusCode == System.Net.HttpStatusCode.OK)
10: {
11: System.IO.Stream s = wr.GetResponseStream();
12: System.Text.Encoding enc = System.Text.Encoding.GetEncoding("windows-1254");
13: System.IO.StreamReader readStream = new System.IO.StreamReader(s, enc);
14: result = readStream.ReadToEnd();
15: }
Bunun sebebi windows formda user account'ının, windows serviste ise network account'ının kullanılmasıymış. Çözüm için, ProjectInstaller.cs içindeki serviceProcessInstaller özelliklerinden Account özelliğini "User" olarak değiştirmek gerekiyor.
5 Şubat 2010 Cuma
Generic List<T> Sıralama
Elimizde bir nesnemiz olsun. Örneğin doküman bilgilerini tutan DocumentInfo gibi.
public class DocumentInfo {
public string documentName;
public string documentId;
public string documentId;
}
Bir de DocumentInfo nesnelerinden oluşan bir listemiz var.
List<DocumentInfo> documentList = new List<DocumentInfo>();Bu listeyi doküman isimlerine göre (documentName) sıralamak istiyoruz. Şu şekilde yapabiliriz:
documentList.Sort(delegate(DocumentInfo document1, DocumentInfo document2) { return document1.documentName.CompareTo(document2.documentName); });
3 Şubat 2010 Çarşamba
ListView’de EnsureVisible
Belki bilinen bir metottur ama ben yeni öğrendim ve benim için güzel bir püf noktası oldu. ListView’e yeni bir item eklediğimizde scroll’un aşağı kaymasını sağlıyor.
Yeni bir item ekledik ve satırı bir aşağı kaydırdık. Ben bu metodu item için kullandım, fakat listview için de şöyle bir kullanımı varmış:
ListViewItem item = new ListViewItem("x"); item.EnsureVisible();
Yeni bir item ekledik ve satırı bir aşağı kaydırdık. Ben bu metodu item için kullandım, fakat listview için de şöyle bir kullanımı varmış:
ListView myListView = new ListView(); myListView.EnsureVisible(myListView.Items.Count - 1);
Bunun farkı parametre olarak index değerini alması. Hangi satıra kaymasını istiyorsanız o satırın index değerini
yazıyorsunuz. Yukarıdaki örnekte scroll en alttaki item’a kayacaktır.
28 Ocak 2010 Perşembe
Generic Listede Case Insensitive Arama
Herhangi bir eleman generic listede var mı diye kontrol ederken, büyük-küçük harfi önemsemeden kontrol etmek istiyorsak bunu nasıl yapabiliriz? Bir örnek verecek olursak;
List<string> imageFormats =
Resim formatlarını yazdığımız bu listede bu uzantılar büyük harflerle de yazılmış olabilir. Herhangi bir dosyaya resim formatında mı diye bakmak istediğimizde hata alırız. Bunu aşağıdaki gibi Contains metoduna parametre ekleyerek çözebiliriz:
private bool isImageFormat(string extension) { List<string> imageFormats =
List<string> imageFormats =
new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };
Resim formatlarını yazdığımız bu listede bu uzantılar büyük harflerle de yazılmış olabilir. Herhangi bir dosyaya resim formatında mı diye bakmak istediğimizde hata alırız. Bunu aşağıdaki gibi Contains metoduna parametre ekleyerek çözebiliriz:
private bool isImageFormat(string extension) { List<string> imageFormats =
new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };
return imageFormats.Contains (extension, StringComparer.OrdinalIgnoreCase);
}
return imageFormats.Contains (extension, StringComparer.OrdinalIgnoreCase);
}
4 Kasım 2009 Çarşamba
Generic List'de Birden Fazla Aynı Değere Sahip Eleman Var mı? (How to find duplicate values from List<> ?)
Belki biraz yavaş bir çözüm olabilir ama alternatiflerden biri:
private static List<string> findDuplicateValues(List<string> values)
{
List<string> duplicateValues = values.FindAll(delegate(string i)
{
return values.FindAll(delegate(string j)
{
return j == i;
}).Count() > 1;
}).Distinct().ToList();
return duplicateValues;
}
private static List<string> findDuplicateValues(List<string> values)
{
List<string> duplicateValues = values.FindAll(delegate(string i)
{
return values.FindAll(delegate(string j)
{
return j == i;
}).Count() > 1;
}).Distinct().ToList();
return duplicateValues;
}
13 Mayıs 2009 Çarşamba
TextBox'a Para Değeri Girme ve Bölgesel Dil Ayarları
Eğer NumericEditBox veya MaskedTextBox gibi para miktarı girilen textbox'lar kullanıyorsanız, bölgesel dil ayarlarıyla ilgili sorun yaşayabilirsiniz. Çünkü her dil ayarına göre farklı noktalama işaretleri kullanılıyor.
Bu durumda programın kullanıldığı her bilgisayarda bölgesel dil ayarlarının değiştirilmesi yerine, tek satırlık kod yazarak, o anlık bölgesel dil ayarının öyle algılanmasını sağlayabilirsiniz. İşte bunun için kullanacağınız kod:
Bu durumda programın kullanıldığı her bilgisayarda bölgesel dil ayarlarının değiştirilmesi yerine, tek satırlık kod yazarak, o anlık bölgesel dil ayarının öyle algılanmasını sağlayabilirsiniz. İşte bunun için kullanacağınız kod:
Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
Güncelleme(23.12.2009):
Bölgesel seçeneklerin özelleştirilebildiğini öğrendim. Yani ayarı Türkçe olarak versek de ondalık sayılarda kullanılan ayraçlar (nokta ve virgül gibi) özelleştirilebiliyormuş. Bu da yukarıda yaptığımız işlemi geçersiz kılıyor. Bunun için en iyi çözüm bu ayraçları da en başta belirtmek (tabi işinize yarar şekilde). Böylece kullanıcı kendi ayarlarında ne yapmış olursa olsun sizi ilgilendirmemiş oluyor.
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ","; Thread.CurrentThread.CurrentCulture.NumberFormat.NumberGroupSeparator = ".";
Kaydol:
Kayıtlar (Atom)