27 Mayıs 2012 Pazar

HATALAR

-- Hata : C# - catch bloğunda syntax ','. 
 Çözüm : INSERT işlemi sırasında oluşan bir hatadır.INSERT edemiyordur.Çünkü VALUES kısmında   syntax hatası vardır.İlgili yerden fazla virgülün kaldırılması gerekmektedir.

-- Hata : C# - "connectionString özelliği başlatılmamış" 
 Çözüm : SqlConnection cnn = new SqlConnection();
 
cnn.ConnectionString = "Server=.;Database=MyDB;Integrated Security =True";


-- Soru : Tablolarda yapılan değişikliği neden kaydedemiyoruz?
Hata : MSSql - "Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the table to be re-created." 
Çözüm :  option olarak "Prevent saving changes that require the table to be re-created" özelliğinin enable yapıldığını göstermektedir.
              Hata aldırmadan tabloda herhangi bir değişiklik yapabilmek için gerekli adımlar şunlardır :
           1.From the 'Tools' drop-down menu, select 'Options...'
           2.Expand 'Designers'
           3.Select 'Table and Database Designers'
           4.Uncheck 'Prevent saving changes that require table re-creation'
           5.Click 'OK'

--Soru: Kayıt esnasında Insert ederken neden "Ilgili tabloya Insert işleminin OFF olduğu" ile ilgili hata alıyorum?
Hata : C# - "Cannot insert explicity value for identity column in table 'TabloAdı' when  IDENTITY_INSERT is set to OFF"
Çözüm : MSSql Server'da new query kısmında "SET IDENTITY_INSERT TabloAdı ON" execute yapmak
INSERT INTO TabloAdı (No,Ad) VALUES (1,'Kalem')
SET IDENTITY_INSERT TabloAdı OFF
C# tan kayıt girişleri yapmayı sürdürebilmek için, daha sonra MSSql tarafında 'No' kolonunu silip veritabanını refresh yaptırabiliriz.Sadece 'Ad' kolonu kalacaktır.Böylece C# tarafında 'Ad' kolonuna kayıt girişi yaptırmaya devam edebiliriz. 

Hata : C# -  "System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı"
bu hata genellikle boş gecilmiyecek bir alanı boş kaydetmeye çalıştığın zaman alınmaktadır
Çözüm:

--Hata : C# - "Unrecognized escape sequence"
   Çözüm : Bu hatayı vermesinin sebebi \ karakterinin özel karakter olması. Bu yüzden normal karaker olarak kullanılmasını istiyoruz ancak \\ olarak kullanılmalıdır. Bunun sıkıntısı özellikle yol belirtirken ortaya çıkmaktadır. Yani C:\Yol değil de C:\\Yol olarak kullanılmalıdır.

--Soru : INSERT ederken hata alıyorum
   Hata : MSSql - "Cannot insert the value NULL into column 'ID',table 'TurkiyeFirma.dbo.Iller';
    column does not allow nulls.INSERT fails. The statement has been terminated"
  Çözüm : MSSql Server'da ID kolonunun "is identity" kısmı YES olarak ayarlanmadığı için INSERT işlemi   yapılamamaktadır. "is identity" kısmı YES olarak ayarlayıp tabloları refresh yaptığımızda INSERT işlemine devam edilebilir.

MS SQL'den Tablo Silmek

DROP TABLE TabloAdı

MS SQL' de Tablo Oluşturmak

örnek:

CREATE  TABLE  TabloAdı
(
   KolonAdı  DataType indentity primary key,
   KolonAdı DataType,
   KolonAdı DataType
)

SQL TRANSACTION

      İş,işlem,hareket (muhasebe) demektir.Transaction,daha küçük parçalara ayrılamayan en küçük işlem yığınına denir.

      Transaction, bir veritabanında gerçekleştirilmek istenen bir dizi operasyonunu bir arada tutan yapıdır.Transaction içerisinde Rollback ve Commit bulunmaktadır.Eğer bir dizi işlemler içerisinde (select,insert,update,delete) kontroller yapılırken en az birisinin bile gerçekleşmeme durumunda,daha önceki yapılan bütün işlemleri iptal ederek Rollback ile işlemi geri alır ve kayıt işlemini gerçekleştirmez.Ancak bütün işlemler belli sıralama mantığına göre sorunsuz bir şekilde gerçekleştikten sonra Commit yapar ve en sonunda kayıt işlemi gerçekleşir.Transaction çalışma mantığı bu şekildedir.Mesela 5 tane işlem gerçekleşmesini istiyorsak 2. işlem gerçekleşmeden 3.sü gerçekleşmez.Aynı sıralamayı takip eder.
       Aynı anda milyonlarca işlemin gerçekleştiği büyük projelerde Sql Transaction'ın önemi bir kat daha artar.
       Transaction "Ya Hep Ya Hiç" prensibi ile çalışır.Ya bütün işlemleri gerçekleştirir ya da hiçbirini gerçekleştirmez.Veri kayıplarına karşı koruma yöntemi çalışmış olur.

       "Ortak Zamanlı Erişim Sorunları" ve "Ortak Zamanlı Erişim İzolasyonyon Seviyeleri" konularına bir sonraki yazımızda değineceğiz.

26 Mayıs 2012 Cumartesi

C# Line Numbers (Satır Numaraları) nı Nasıl Gösterebiliriz

Visual Studio çalışma ortamının tüm ayarları Options menüsünden yapılır. Environment ve Text Editor en sık kullanılan seçeneklerdir
Environment (Ortam): Sayfa düzeni ve görünüm ayarları, yazı tipi (font) ve renk ayarları, komutlar için kısa yol ayarları, Internet tarayıcısı ayarları, yardım ve dinamik yardım ayarları yapılır.
Text Editor (Metin Düzenleyicisi): Farklı programlama dillerine özgü yazı düzeni yapılır.
Örnek:
o Tools menüsünden Options komutunu seçin
o Sol panelde Text Editor menüsünden C# alt menüsünü seçin. Burada Visual C# diline özel metin düzenleme seçenekleri bulunur.
 Sağ panelde, Display sekmesinin altında Line Numbers (Satır Numaraları) seçeneğini işaretleyin. Bu seçenek, Visual C# projelerinde çalışırken satır numaralarını gösterir.

MS SQL Server'da Bütün Kayıtları Silme

Bir Tablodaki Bütün Kolonlardaki Yapılmış Kayıtları Silme
TRANCATE TABLE TabloAdi

MS SQL Server'dan ID Numarasına Göre Kayıt Silme

DELETE TabloAdı WHERE ID=5

6 Mayıs 2012 Pazar

MS SQL SERVER SORGULARI

SELECT

İstediğimiz verileri getirip listelenmiş şekilde okunabilmesini sağlayan sorgu türüdür.

Syntax: SELECT KolonAdı FROM TabloAdı

Not: Dikkat edilmesi gereken konu SELECT sorgumuzdaki kolon ve tablo adlarının isimleri veri tabanındaki adlarıyla aynı olmalıdır

Örnek:

-- Personel tablosundaki tüm bilgileri getirmek için
    SELECT * FROM TBL_Personel

-- Personel tablosundaki Ad ve Soyad kolonlarını getirmek için
    SELECT Ad,Soyad FROM TBL_Personel

Şartlı Sorgulama


Syntax: SELECT KolonAdı FROM TabloAdı WHERE Şart

Not: MS SQL de satırlar ' tek tırnak içerinde belirtilmeli

Örnek:

-- Personel tablosundaki Muhasebe departmanında çalışanların Gorev isimli kolonlarını getirmek için
    SELECT Gorev FROM TBL_Personel WHERE Departman='Muhasebe'

-- TBL_Personel tablosundaki  PersonelID kolonundaki id numarası 10 olan personeli Ad ve Soyad olarak getirmek için
   SELECT Ad,Soyad FROM TBL_Personel WHERE PersonelID=10

Karşılaştırma Operatörleri


=      Eşitlik             SELECT * FROM TBL_Personel WHERE Yas=25
     Büyüktür        SELECT * FROM TBL_Personel WHERE Yas>25
<      Küçüktür        SELECT * FROM TBL_Personel WHERE Yas<25
<>    Eşit Değil        SELECT * FROM TBL_Personel WHERE Yas<>25
<=    Küçük Eşit      SELECT * FROM TBL_Personel WHERE Yas<=25
>=    Büyük Eşit      SELECT * FROM TBL_Personel WHERE Yas>=25

Karşılaştırma İfadeleri


AND                VE                    WHERE Yas=25 AND WHERE Yas=27
OR                   VEYA               WHERE Yas=25 OR WHERE Yas_27
BETWEEN      ARASINDA         WHERE Yas BETWEEN 25 AND 27
IN                    DAHİL             WHERE Yas IN (25,26,27)
LIKE               GİBİ                   WHERE Ad LIKE 'a%'   (adı a ile başlayanlar)
NOT                DEĞİL              WHERE NOT Yas=25

Like Operatörü

--------------------------------------------------------------------------------------------------
UPDATE - SET - WHERE

Güncellemek için kullanılan sorgu türüdür.
Daha önce kaydedilmiş olan bir bilgiyi değiştirmek ve yerine yenisini yazıp güncellemek için kullanılır.

UPDATE TabloAdı SET KolonAdı = Değer WHERE KolonAdı = ' '
veya
UPDATE TabloAdı SET KolonAdı = Deger WHERE ID = IDNumarası
gibi
--------------------------------------------------------------------------------------------------
DELETE

Silme işlemleri için kullanılan sorgu türüdür.
--------------------------------------------------------------------------------------------------