Kadir's profileKadir CamogluBlogLists Tools Help

Blog


    SSIS ve Maintenance Paket Kayıt Sorunu

    No description found
     
    Eğer bir SSIS ya da Maintenance paketi kaydetmeye çalışırken yukarıdaki hatayı alıyorsanız bilin ki Microsoft Core XML Services'en registery kaydı silinmiş durumdadır. Sorunu gidermek için Start\Run dan aşağıdaki komutu çalıştırın.
     
    Regsvr32 "C:\WINDOWS\system32\msxml3.dll"

    Aşağıdaki linke konuyla ilgili daha detaylı bilgi bulabilirsiniz.

    http://support.microsoft.com/kb/922546

     

    Matematiksel İşlemler

    Visual Basic.Net ile matematiksel işlemler yaparken en çok kullanacağınız sınıf Math'dir. Bu sınıfın statik metodları, sayıları yuvarlamanızı, tamsayı kısımlarını ondalık kısımlardan ayırmanızı, is işlemleri yapımanızı vb. sağlar.

    Bir sayının karakökünü bulmak için Math.Sqrt kullanılır.

    Console.WriteLine("{0} sayısının karakökü = {1}", 9, Math.Sqrt(9))
    Bir sayının belirli bir dereceden üst kuvvetini bulmak için Math.Pow kullanılır.
    Console.WriteLine("{0} sayısının {1}. kuvveti = {2}", 3, 3, Math.Pow(3, 3))
    Bir ondalık sayının tamsayı kısmını bulmak için Math.Truncate kullanılır.

    Console.WriteLine("{0} sayısının  tamsayı kısmı = {1}", 351.999, Math.Truncate(351.999))
    Console.WriteLine(
    "{0} sayısının  tamsayı kısmı = {1}", -351.999, Math.Truncate(-351.999))

    Bir sayının negatif, pozitif ya da 0 mı olduğunu belirlemek için Math.Sign kullanılır. Fonksiyon verilen değer negatifse "-1", pozitifse "1" ve 0 ise "0" değeri getirir.

    Console.WriteLine(

    "{0} sayısının  işareti = {1}", -234, Math.Sign(-234))
    Console.WriteLine(
    "{0} sayısının  işareti = {1}"
    , 0, Math.Sign(0))
    Console.WriteLine(
    "{0} sayısının  işareti = {1}", 13, Math.Sign(13))
    İki sayıdan küçük olanı bulmak için Math.Min kullanılır.

    Console.WriteLine(

    "{0} ve {1} saylarndan k‡k olan = {2}", 456, 234, Math.Min(456, 234))
    İki sayıdan büyük olanı bulmak için Math.Max kullanılır.

    Console.WriteLine(

    "{0} ve {1} saylarndan byk olan = {2}", 456, 234, Math.Max(456, 234))
    Bir ondalık sayıyı tabana yuvarlamak, yani ona yakın en küçük tamsayıyı bulmak için Math.Floor kullanılır.

    Console.WriteLine(

    "{0} saysna yakn en k‡k tamsay = {1}", 351.999, Math.Floor(351.999))
    Console.WriteLine("{0} saysna yakn en k‡k tamsay = {1}", 351.999, Math.Floor(-351.999))
    Bir ondalık sayıyı tavana yuvarlamak, yani ona en yakın büyük tamsayıyı bulmak için Math.Ceiling kullanılır.

    Console.WriteLine(

    "{0} saysna yakn en byk tamsay = {1}", 351.999, Math.Ceiling(351.999))
    Console.WriteLine(
    "{0} saysna yakn en byk tamsay = {1}", 351.999, Math.Ceiling(-351.999))
    Bir sayıyı yuvarlamak için genel olarak Math.Round kullanılır. Math.Round sadece ondalık sayıyla çalıştırıldığında tamsayıya yuvarlama işlemi yapar. Ondalık kısım .50 ve altındaysa, verilen sayıya en yakın küçük tamsayıyı verir. Ondalık kısım .51 ve üstündeyse verilen sayıya en yakın büyük tamsayıyı verir.

    Console.WriteLine(

    "{0} saysnn yuvarlanmŸ hali = {1}", 134.5, Math.Round(134.5))
    Console.WriteLine(
    "{0} saysnn yuvarlanmŸ hali = {1}", 134.51, Math.Round(134.51))
    Bir sayıyı belirli sayıda ondalık basamağa yuvarlamak için Math.Round fonksiyonu, basamas sayısı parametre olarak verilerek kullanılır.

    Console.WriteLine("{0} saysnn 2 ondalk basama§a yuvarlanmŸ hali = {1}", 134.5451, Math.Round(134.5451, 2))
    Console.WriteLine("{0} saysnn 2 ondalk basama§a yuvarlanmŸ hali = {1}", 134.545, Math.Round(134.545, 2))
     

    Pi Sayısı

    Pi sayısı, bir dairenin çevresinin çapına bölümü ile elde edilen sayıdır. Bu oran her daire için aynı değeri aldığından, pi sayısı bir matematiksel sabittir. 50 rakamlık kırpılmış hali şöyledir: "3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 "
     
    Uygulamalarınızda matematiksel işlemler yapıyor ve Pi sayısına ihtiyaç duyuyorsanız, Math sınıfının PI field'ını kullanabilirsiniz. Size Pi sayısı için "3.14159265358979323846"ı getirecektir. Math.PI
     
    Console.WriteLine(Math.PI.ToString())
     

    Metinlerde Büyük/Küçük Harf Değiştirme

    Eğer bir metniniz varsa ve siz bunun içindeki tüm karakterlerin küçük harf olmasını istiyorsanız, String sınıfının ToLower() metodunu kullanabilirsiniz.

    s.ToLower()

    Ancak bu metod, "s" içindeki karakterleri küçük harfe çevirirken, o an Windows işletim sisteminizde aktif olan bölgesel seçeneklere göre çalışacaktır. Yani "s" değişkeni içerisindeki değer "INDIGO" ise bunu "ındıgo" olarak değiştirecektir. Ancak bu İngilizce kelimenin "indigo" olarak küçük harfe çevrilmesi daha doğru olacaktır. Bu ve benzeri durumlar için ToLower metodunun, System.Globalization isim alanı içerisinde bulunan CultureInfo sınıfını parametre olarak kabul eden versiyonu kullanılır.

    s.ToLower(

    New CultureInfo("en-US"))
    "en-US" çevirimin Amerikan İngilizcesi baz alınarak yapılacağını belirtir. CultureInfo sınıfına parametre olarak gönderilebilecek kültür isimleri listesini aşağıdaki linkten bulabilirsiniz.
     
     
    Aynı şekilde metnin harflerinin tamamını büyük harfe çevirmek için ise s.ToUpper() ve s.ToUpper(New CultureInfo("en-US")) kullanılır.
     
     

    İki Metni Karşılaştırmanın En Performanslı Yolu

    Kod yazarken sık sık metinlerle çalışırız. Bazen ik metni karşılaştırarar ayın olup olmadıklarına bakmamız gerekir. Normal şartlarda bu iş konu yapılmayacak kadar basittir.

    If s1 = s2 Then

    End If
    Ama eğer uygulama içinde bu kontrolü binlerce hatta milyonlarca kez yapmanız gerekiyorsa o zaman "=" ile karşılaştırma yapmak en son tercihiniz olsun. Aşağıda iki metni birbirleriyle karşılaştırmak için kullanabileceğiniz alternatif yöntemleri görüyorsunuz. Kodu çalıştırdığınızda en hızlısının s1.Equals(s2) olduğunu göreceksiniz. s1=s2 ise en yavaş çalışan yöntemdir.
     

    Dim sw As New System.Diagnostics.Stopwatch

    Dim s1 As String = "Some text for testing"

    Dim s2 As String = "Some text for testing."

     

    sw.Start()

    For i As Integer = 0 To 10000000

    If s1 = s2 Then

    ' Hiç bir şey yapma

    End If

    Next

    sw.Stop()

    Console.WriteLine(

    "s1=s2 : " + _

    sw.Elapsed.TotalMilliseconds.ToString())

    sw.Reset()

    sw.Start()

    For i As Integer = 0 To 10000000

    If String.Equals(s1, s2) Then

    ' Hiç bir şey yapma

    End If

    Next

    sw.Stop()

    Console.WriteLine(

    "String.Equals(s1,s2): " + _

    sw.Elapsed.TotalMilliseconds.ToString())

    sw.Reset()

    sw.Start()

    For i As Integer = 0 To 10000000

    If s1.Equals(s2) Then

    ' Hiç bir şey yapma

    End If

    Next

    sw.Stop()

    Console.WriteLine(

    "s1.Equals(s2): " + _

    sw.Elapsed.TotalMilliseconds.ToString())

    Click here for English

    Dosya Okuma/Yazma

    Visual Basic ile dosya okuyup yazmanın en kolay yollarından biri, System.IO isim alanında bulunan File sınıfının AppendAllText, WriteAllText ve ReadAllText statik metodlarını kullanmaktır.
     
    WriteAllText metodu parametre olarak dizin/dosya adı ve yazılacak metni alır. Verilen dizinde, bahsi geçen dosya yoksa, dosyayı oluşturur, metni içerisine yazar ve daha sonra da dosyayı kapatır. Eğer dosya önceden mevcutsa, metni dosyanın üzerine yazar. Önceki metin silinir.
     
    Aşağıdaki kod, C:\ dizininde Test.txt dosyasını oluşturur, dosyayı yazmak üzere açar ve içerisine çalıştığı andaki tarih ve saat bilgisini yazar.
    File.WriteAllText ("C:\Test.txt", DateTime.Now.ToString())
    AppendAllText metodu ise WriteAllText metodundan farklı olarak dosyanın üzerine değil, devamına yazar. Yani yeni metni, dosya içerisindeki metnin arkasına ekler. Eğer dosya mevcut değilse, önce oluşturur sonra içerisine yeni metni yazar ve dosyayı kapatır.
    File.AppendAllText("C:\Test.txt", DateTime.Now.ToString())
    Bir metin dosyası içerisindeki metnin tamamını okuyarak bir String değişkene aktarmak içinse ReadAllText metodu kullanılır.
    metin=File.ReadAllText("C:\Test.txt")

    .NET Framework 3.0 (WinFX/NetFX3)

    Eğer hala .Net 3.0 framework'u yüklemediyseniz, hemen aşağıdaki linke tıklayarak, kurulum dosyasını indirebilirsiniz.
     
    Bu da kurulum ve sonrası için bilinen sorunları vb. içeren bir link:
     
    Ayrıca .NET Framework 3.0 ile ilgili daha detaylı bilgi almak için aşağıdaki siteleri takip etmenizi öneririm.
     

    StringBuilder Bellek/Kapasite Kontrolü

     
    Çok miktarda metinsel işlem gerektiren uygulamalarda String yerine System.Text isim alanında bulunan StringBuilder sınıfını kullanmak çok daha iyi performans sağlar. Varsayılan ayarlarıyla kullanımında bile bellek yönetimi konusunda epeyce başarılı olan StringBuilder sınıfını, kapasite ayarlaması yaparak daha da verimli kullanmak mümkündür.

    Dim sb As New StringBuilder()

    Yukarıdaki kod satırı çalıştığında yeni bir StringBuilder nesnesi oluşturur. sb isimli örneğin karakter uzunluğu 0, kapasitesi 16'dır. Vasayılan olarak 16 olarak belirlenen kapasite, uzunluğun mevcut kapasiteyi aşması durumunda otomatik olarak 16 ya da katları şeklinde artacaktır.
     
    Eğer uygulamamız gereği gerçekleştirdiğimiz metinsel işlemler çok fazla, ancak karakter sayısı 8 ya da katları şeklindeyse, aşağıdaki tanımlamayla daha doğru bir kodlama yapmış ve belleği daha verimli kullanmış oluruz.
     

    Dim sb As New StringBuilder(8)

    Yukarıdaki kodlamayla kapasitesi 8 olarak başlayan ve kapasite artırımı 8 ve 8'in katları şeklinde olan bir StringBuilder nesnesi tanımlamış oluruz.

    Ses Dosyalarını Çalmak/Yürütmek/Oynatmak

    Visual Basic .Net 2005 ile uygulamalarınızda ses dosyalarınızı yürütmek çok kolay. Aşağıdaki uygulama "C:\WINDOWS\Media\Windows XP Startup.wav" dosyasını yürütür. Farklı dosyalar kullanarak farklı sesler yürütmeniz de mümkün.

      Dim s As New System.Media.SoundPlayer("C:\WINDOWS\Media\Windows XP\Startup.wav")
      s.Play()

    Windows'un daha önceden tanımlı ses efektlerini kullanmak için de aşağıdaki kodu kullanabilisiniz.

      System.Media.SystemSounds.Hand.Play()

    Böylece ses efektleri, konuşmalara vb. kullanarak çok daha zengin uygulamalar geliştirebilirsiniz.

    DateTimePicker ile Saat/Zaman Bilgisi Göstermek/Okumak

    DateTimePicker kontrolünü, kullanıcıya tarih/saat bilgisini görüntülemek istediğimizde ve/veya kullanıcıdan tarih/saat bilgisi almak istediğimizde kullanırız. Kontrol normalde ComboBox gibi çalışır ve açıldığında MonthCalendar gösterir ve sadece tarihle ilgili işlemler yapılabilir. Saatle ilgili işlemler yapabilmek için Format Property sine Time değerini atayın ve ShowUpDown Property değerini de True olarak değiştirin. Böylece kullanıcı saat üzerine tıklıyken kılavyeden ya da yukarı aşağı butonlarına basarak saati ayarlayabilecektir.

    ToolTip Windows Kontrolü

    Windows programlarken kullanıcıya ekstra bilgi vermek için kullandığımız ToolTip, tek satırlık basit bir bilgi vermenin ötesinde şeyler de yapabiliyor. Label, TextBox, PictureBox gibi kontroller için kullanılan ToolBox, kullanıcı bu kontrollerden birinin üzerinde fareyi bir süre beklettiğinde, sarı bir çerçeve içerisinde ek bir bilgi gösterir ve bir süre sonra kaybolur. İki şekilde kullanılır.
     
    Birincisi tasarım zamanında  Form'a ToolTip eklendiğinde, Properties penceresinde mevcut kontrollerinizin özelliklerine yeni bir özelliğin daha eklenmiş olduğunu görürsünüz:"ToolTip on ToolTip1". Bu özelliğe fare o kontrol üzerine geldiğinde görünmesini istediğiniz metni yazabilirsiniz.
     
    Diğer kullanım şekli de kod editöründe, genellkile Form_Load olay yordamında ToolTip1.SetToolTip(Label1, "Bilgi mesajı") kodunu yazmaktır.
     
    ToolTip kontrolünün yayagın kullanımından bahsettikten sonra şimdi de ToolTip'in az bilinen özelliklerini teker teker inceleyelim.
     
    Birden Fazla ToolTip:
    İlk söyleyeceğim şey bir Form için birden fazla ToolTip kullanabileceğiniz. Uygulamada ilgili kontrol için iki ToolTip birden görüntülenir. Ancak çoğunlukla ikisi üst üste geleceğinden sadece birini görebilirsiniz. İki ToolTip'i birden görmek için birinin IsBalloon özelliğini True yapın.
    Bunun kullanım alanı duruma göre ToolBox'lardan birini devre dışı bırakıp diğerini aktive ederek farklı Tip'ler gösterebilmenizdir.
     
     
    Active:
    Diyelim formunuz bir çok kontrol taşıyor ve hepsi için de ToolTip girdiniz. Ancak bazı durumlarda bu ToolTip'lerin görünmemesi gerekiyor. İşte böyle bir durum için Active Property'sini kullanıyorsunuz. Active özelliğiyle ToolTip'i aktifleştirebilir ya da devre dışı bırakabilirsiniz.
     
      ToolTip1.Active = True
      ToolTip1.Active = False
     
     
    ShowAlways:
    ToolTip tanımladığınız bir kontrolün Enabled özelliği False ise ToolTip metni normalde görüntülenmez. Ancak uygulamanızda kontrol Disable bile olsa ToolTip'in görüntülenmesini istiyorsanız ShowAlways özelliğine True değerini atayın.
     
     
    IsBalloon:
    ToolTip normalde siyah kenarlıklı ve sarı arka planlı bir çerçeve şeklinde görünür. Ama daha şık bir Tip görüntülemek istiyorsanız IsBalloon özelliğini True yapın.
     
     
    UseFading:
    ToolTip'in gösteriminin şeffaf başlayıp opağa geçmesini ve kapatılırken opaktan başlayıp şeffafa dönüşmesini sağlar.
     
     
    ForeColor:
    ToolTip üzerinde gösterilecek olan metnin ve başlığın rengini değiştirmek için kullanılır.
     
     
    BackColor:
    ToolTip kontrolünün arka plan rengini değiştirmek için kullanılır.
     
     
    ToolTipTitle:
    ToolTip balon ya da kutusuna başlık metni oluşturmak için kullanılır.
     
     
    ToolTipIcon:
    Dört seçenek vardır. None, ikon kullanılmayacağı anlamına gelir. Diğerleri de Info, Warning ve Error'dur.
     
     
    AutoPopDelay:
    ToolTip kontrolünün kaç milisaniye gösterileceğini belirler. 5000 milisaniye ToolTip'in 5 saniye gösterileceği anlamına gelir.
     
     
    InitialDelay:
    ToolTip'in görüntülenmesi için kullanıcının fareyi ilgili kontrol üzerinde ne kadar bekletmesi gerektiğini belirler. 500 milisaniye, yarım saniyelik bir bekleme süresi anlamına gelir.
     
     
    ReshowDelay:
    Herhangi bir kontrol için ToolTip gösterildiğinde, kullanıcı fareyi bir kontrolden diğerine taşıdığında yeni kontrolün ToolTip'inin gösterilmesi için farenin yeni kontrol üzerinde ne kadar beklemesi gerektiğini belirler.
     
     
    AutomaticDelay: 
    AutoPopDelay, InitialDelay ve ReshowDelay değerlerinin otomatik olarak değişmesini sağlar.
     
     

    Dosya isimleriyle çalışmak (Path)

    Dosya isimleriyle çalışırken sıklıkla karşılaştığımız bir sorun, elimizdeki tam dosya adının (FullPath) disk, dizin, dosya adı ve dosya uzantısı gibi bir çok şeyi birden içermesidir.

      "C:\Program Files\ParaMakinesi\ParaKazan.exe"

    Şimdi bunun içinden sadece dosya adına ihtiyacınız var diyelim. Uzantısız haliyle: ParaKazan. Nasıl alacaksınız?

    .Net Framework' te System.IO isim alanı içerisinde yer alan Path sınıfı, bu konuda müthiş kolaylıklar sağlayan bir araç. Aşağıda temel kullanımını ve çıktılarını görmektesiniz.

      Dim dosyaYoluAdi As String = "C:\Program Files\ParaMakinesi\ParaKazan.exe"
      Console.WriteLine("Dizin adı: " & Path.GetDirectoryName(dosyaYoluAdi))
      Console.WriteLine("Dosya uzantısı: " & Path.GetExtension(dosyaYoluAdi))
      Console.WriteLine("Dosya adı: " & Path.GetFileName(dosyaYoluAdi))
      Console.WriteLine("Uzantısız dosya adı: " & Path.GetFileNameWithoutExtension(dosyaYoluAdi))
      Console.WriteLine("Kök dizin: " & Path.GetPathRoot(dosyaYoluAdi))

    ÇIKTI:
      Dizin adı: C:\Program Files\ParaMakinesi
      Dosya uzantısı: .exe
      Dosya adı: ParaKazan.exe
      Uzantısız dosya adı: ParaKazan
      Kök dizin: C:\

    MonthCalendar

    Visual Studio kontrollerinden biri olan MonthCalendar, kullanıcının bir ayın günlerini görerek tarih seçmesi için kullanılan bir kontroldür. Kontrolün az bilinen bir özelliği, tek bir kontrolle birden fazla ayın gösterilebileceğidir. MonthCalendar kontrolünün CalendarDimensions özelliği iki değer alır. Biri Width, yatayda kaç kolondan oluşacağını belirler. İkinci değer ise Height, dikeyde kaç satırdan oluşacağını belirler.
     
    Aşağıda tüm bir yılı görüntülemek için 4;3 değeri kullanılmıştır.
     

    Microsoft Sertifika Sınavlarına Nasıl Hazırlanılır?

    İster sektör profesyoneli olun, isterseniz öğrenci ya da yeni mezun, ya da bu işle yeni ilgileniyor olun, her koşulda sertifika sınavlarına mutlaka hazırlanmanızı öneririm. Hepimizin bildiği teori/pratik farklılığı fenomeni Microsoft sertifikasyonunda da geçerli.

    Herhangi bir sınava hazırlanırken ilk yapılması gereken Microsoft’un o sınavla ilgili hangi başlıklardan sorular geleceğini, bu konulara hangi eğitimlerle, MS Press yayınlarıyla ya da E-Learning materyalleriyle hazırlanabileceğinizi detaylıca anlatan “Preparation Guide for Exam 70-XXX” sayfalarıdır. Bu sayfaya Microsof Learning ana sayfasında, menüden ilgilendiğiniz bir sertifikayı seçip ya da direkt sınav sayfasını gidip ilgilendiğiniz sınavın kodunu yazarak ulaşabilirsiniz.

    E-Learning materyalleri, web üzerinden online olarak takip edebileceğiniz eğitimleri içerir. İçerikler yazılı, görsel, video ve sesli anlatım ve sanal lablardan oluşur. İçeriğin dili ingilizcedir. E-Learning ürünleri hakkında bilgi almak, bir eğitim satın almak için http://www.microsoft.com/learning/elearning.mspx adresini kullanabilisiniz.

    MS Press kitapları bu konuda destek alabileceğiniz en iyi kaynaklardan biridir. Ancak belirli bir altyapınız varsa, kendi kendinizi öğrenmeye motive etme konusunda iyiyseniz tavsiye ederim. Ama en kötü ihtimalle kitaplığınızda gerçekten değerli birer referans kitabı olarak yer almalarında fayda vardır. Kitapların orjinalleri ingilizce. Ancak kitapçılarda bazı kitapların Türkçe’lerini bulabilmeniz mümkün. MS Press kitaplarıyla ilgili detaylı bilgiyi http://www.microsoft.com/learning/Books/default.asp adresinden alabilirsiniz.

    Microsoft eğitimleri, sınava hazırlık konusunda zamanı ve bütçesi olanlar için en iyi çözüm. Microsoft’un yetkili eğitim merkezlerinde, yetkili eğitmenlerden alınacak bir eğitim, bilgi aktarımının dışında, hedeflediğiniz sertifikasyonu tamamlamış bir uzmanın koçluğunu da size sunacaktır. Özellikle yeni başlıyorsanız konuları bir eğitmenin süzgecinden almak ve takıldığınız yerlerde destekleniyor olmak çok ciddi bir avantaj olacaktır. Microsoft’un Yetkili Eğitim Merkezleri’nin listesini http://www.microsoft.com/turkiye/egitim/cplssehir.mspx adresinde bulabilirsiniz.

    Yukarıdakilere ek olarak sınavlara hazır olup olmadığınızı görmek ve eksiklerinizi gidermek için bir diğer alternatif de “Microsoft Certified Practice Test Providers” yani “Microsoft Yetkili Örnek Sınav Sağlıyıclar”dan gireceğiniz sınavın örnek sorularını satın alabilirsiniz. Microsoft’un önerdiği iki sınav sağlayıcısı bulunmaktadır. Bunlar Self Test Software (http://www.selftestsoftware.com/) ve MeasureUp (http://www.measureup.com).

    Visual Basic, CSharp ve Visual Web Developer Express Edition ailesi için Service Pack 1 çıktı!

     
    Aşağıdaki adreste her bir için ayrı ayrı indirebileceğiniz service pack download butonlarını göreceksiniz.
     
  • Visual Basic 2005 Express Edition SP1 - VS80sp1-KB926747-X86-INTL.exe
  • Visual C++ 2005 Express Edition SP1 - VS80sp1-KB926748-X86-INTL.exe
  • Visual C# Express Edition SP1 - VS80sp1-KB926749-X86-INTL.exe
  • Visual J# Express Edition SP1 - VS80sp1-KB926750-X86-ENU.exe
  • Visual Web Dev Express Edition SP1 - VS80sp1-KB926751-X86-INTL.exe
  • İstisnai Durum Yönetimi - 1

    Bir uygulamad iyi bir istisnai durum yönetimi, uygulamanın profesyonelliğini belirleyen en önemli etmenlerden biridir. Eğer uygulamanız bir dosya okuyorsa, bu dosyanın silinmesi ya da farklı nedenlerle bulunamaması durumunu göz önünde bulundurmalısınız. Ve bunun için de "Try..Catch" bloğunu kullanmalısınız.
     
    Try..Catch bloğunda çalıştırmak istediğiniz ve çalışma zamanında hata oluşturma ihtimali olan kod, Try bloğuna yazılır. Hata durumuyla ilgili kodlar ise Catch bloğuna yazılır.
     
      Try
      {
        // Dosya okuma işlemleri
      }
      Catch(Exception ex)
      {
        // Hata durumu işlemleri
      }
     
    Catch bloğunda yakalanacak hata sınıfı belirtilir. Eğer her türlü istisnai durumu yakalamak istiyorsanız Exception sınıfını kullanın. Ancak Exception sınıfı en genel istisnai durum sınıfı olduğu için yavaş çalışacaktır. Oluşması muhtemel hatadan eminseniz, o hataya özgü istisna sınıfını kullanabilirsiniz. Örneğin dosyanın bulunamaması gibi bir duruma karşılık FileNotFoundException istisnası, Exception istisnasına oranla daha performanslı çalışacaktır.
     
      Try
      {
        // Dosya okuma işlemleri
      }
      Catch(FileNotFoundException fx)
      {
        // Hata durumu işlemleri
      }
     
    Evet şimdi daha performanslı bir hata yönetimi yapmış olduk. Ama bu hata yönetimi sadece dosya bulunamaması durumunda çalışır. Eğer dosya var ama kilitliyse, okunamıyorsa bu kodla durumu tespit edemeyiz. İstisnai durumlar için en başarılı hata yönetimi, iki ya da daha fazla seviyeli istisnai durum kontrolüyle gerçekleştirilebilir.
     
      Try
      {
        // Dosya okuma işlemleri
      }
      Catch(FileNotFoundException fx)
      {
        // Hata durumu işlemleri
      }
      Catch(Exception ex)
      {
        // Hata durumu işlemleri
      }
     
    Yukarıdaki kodda öncelikle Try bloğu içerisindeki kod çalıştırılır. Eğer okunacak dosya bulunamazsa FileNotFoundException Catch bloğu hatayı yakalar ve blok içindeki işlem yapılır. Eğer hata dosyanın var ya da yok olmasıyla ilgili değilse Exception Catch bloğu hatayı yakalar. Böylece kod her durumda kontrol altına alınmış olur.
     
    Catch bloklarındaki ex, fx değişkenleri yakalanan istisnai durumu temsil eden değişkenlerdir. Bu değişkenlerin özellik ve yöntemleri kullanılarak hata hakkında detaylı bilgi alınabilir.
     
      Console.WriteLine(ex.Message());
     

    Stopwatch ile Kod Performansı Ölçmek

    Eskiden bir işlemin ne kadar sürede tamamlandığını bulmak için öncelikle DateTime ve TimeSpan nesnelerini kullanarak epey bir uğraşırdık. Şimdi ise StopWatch sınıfı var.
     
    Sınıf ya da form seviyesinde bir örnek oluşturun.
     
      Stopwatch sw = new Stopwatch ();
     
    Sonra ölçeceğiniz işlem başlamadan önce "Start" konutuyla çalıştırın.
     
      sw.Start();
      // ölçülecek işlem
     ...
     
    İşlem bittiğinde de "Stop" komutuyla durdurun.
     
      // ölçülecek işlem
      sw.Stop();
     
    Arada geçen süreyi de yine direkt olarak Stopwatch nesnesi üzerinden almanız mümkün.
     
      MesageBox.Show(sw.Elapsed.Milliseconds.ToString());
     
    Arka arkaya bazı işlemler yapmak istiyorsanız ve arada sayacı sıfırlamak istiyorsanız bunun da çözümü var: "Reset"
     
      sw.Reset();
      sw.Start();
     
    Bu da kodun tamamı.
     
      Stopwatch sw = new Stopwatch ();
     
      sw.Start();
      // ölçülecek işlem
      sw.Stop();
      MesageBox.Show(sw.Elapsed.Milliseconds.ToString());
     
     
    Bu da Vb cesi:
     
      Dim sw As new Stopwatch()
     
      sw.Start()
      // ölçülecek işlem
      sw.Stop()
      MesageBox.Show(sw.Elapsed.Milliseconds.ToString())

    Kod Çevirici: C#'tan Vb'ye - Vb'den C#'a

    Eğer elinizde bir örnek kod var ve siz bu kodu daha iyi bildiğiniz dilde uygulamak istiyorsanız, size bu iş için tasarlanmış iki site önermek istiyorum. Dilerseniz Visual Basic ile yazılmış bir kodu C#'a çevirin. Ya da C# ile yazılmış bir kodu Visual Basic'e çevirin.
     
    İşte adresler:
     
     

    DataTable İçinde Aggregate Fonksiyon Çalıştırmak (DataTable Compute)

    Elinizde bir DataTable var.
    Ya da bir DataSet ve çok sayıda DataTable...
    İhtiyacınız olansa bir DataTable içindeki verilerde, bir alanın en yüksek ya da en düşük değerini bulmak. Bu toplamı da olabilir... (Tüm ANSI SQL Aggregate fonksiyonları çalışır.)
     
    Yapmanız gereken tek şey DataTable sınıfının Compute metodunu çalıştırmak.
     

    table.Compute("MAX(Price)", "")

    Compute metodu iki parametre alır. Parametrelerin her ikisi de String veri tipinde olmalıdır.
    Birinci parametre "Max", "Min", "Sum", "Avg" gibi Aggregate fonksiyon deyimlerini içerir.
    İkinci parametre ise bu fonksiyonunun uygulanacağı kayıt kümesini filtrelemeye yarar. Eğer işlem tablodaki tüm kayıtlar üzerinde yapılacaksa boş bırakılır.

    Compute metodu Object veri tipinde değer döndürür. Bunun için kullanılacağı yerde tip dönüşümü yapmak gerekir.

    lblMax.Text =

    "MAX : " + table.Compute("MAX(Price)", "").ToString();