mssql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
mssql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Aralık 2009 Pazartesi

Yerine Tetikleyiciler - 'Instead Of' Triggers (MS SQL)

Microsoft SQL Server'da Instead of trigger'ların bize sağladığı en önemli avantaj, güncellenemeyen view'lerin güncellenebilir yapılmasıdır. Bu yazıda da güncellenemeyen bir view'e instead of insert trigger yazarak view'e insert yapılmasını sağlayacağız.

İlk olarak tablolarımızı oluşturmamız gerekiyor. Bir önceki yazıda (Linq) kullandığımız tabloları kullanacağız. İster elle oluşturabilirsiniz isterseniz de aşağıdaki sql sorgusunu veritabanınızda çalıştırabilirsiniz. Toplam 3 adet tablomuz bulunmakta, kısaca açıklamak gerekirse, student tablomuzda öğrenci verileri tutulmaktadır.

Bir öğrencinin istediği kadar ders alabilmesi için student_course_join tablomuz bulunmaktadır ve doğal olarak dersleri kayıt ettiğimiz bir de course tablosu bulunmaktadır.

19 Aralık 2009 Cumartesi

Hala Linq Kullanmıyor musunuz?

.Net için ufak bir uygulama geliştirirken, bu uygulamada veritabanı bağlantısını Sql Data Client ile sağlıyordum, dolayısıyla oluşturduğum her yeni dosyada kodlamaya başlamadan önce "using System.Data.SqlClient;" satırını eklemek zorundaydım. Oysa "using System.Linq;" satırı hazır olarak geliyordu. Bende Microsoft'ta çalışanların elbet bir bildiği vardır diye düşündüm ve kodlamayı yarım bırakarak google'a "linq tutorial" yazıp arattım.

Yeni şeyler öğrenmek her zaman insana zor gelir, ancak linq öğrendikten sonra, neden daha önce bakmadım diye kendime sordum. Çünkü her seferinde bağlantı açıp kapamak, sql sorguları yollayıp sonuçları okumak gibi işlemler linq ile çok kolay.

Bu yazıda çok basit bir uygulamayı linq kullanarak nasıl daha basit hale getirilebileceğini göreceksiniz.Bu uygulamada bir tane öğrenci tablomuz, bir tane de ders tablomuz olacak ve her öğrencinin istediği kadar ders seçebilmesi için de bunları bağlayan bir join tablomuz olacak.

İlk olarak tabloları oluşturmak için, "SQL Serve Management Studio Express"i başlatıyoruz. "Deneme" adında bir veritabanı yaratıp,  aşağıdaki tabloları oluşturuyoruz. Tablo isimlerini ingilizce olarak yazıyorum, eğer türkçe oluşturursak kod içerisinde ingilizce-türkçe karışık bir notasyon oluşacaktır.

16 Haziran 2009 Salı

Yerel IIS'de ASP.NET ile MSSQL bağlantısı nasıl sağlanır ?


Kendi bilgisayarınıza asp.net sunucusu kurduysanız ve veritabanı olarak mssql kullanıyorsanız, farkedeceğiniz gibi web sayfanızda, sql bağlantısı açılırken, size bağlantı hatası verecektir. "Login Fail" ya da buna benzer bir hata oluşacaktır.

Buna benzer bir sorunu düzeltmek için mssql sunucunuza gerekli kullanıcıları, uygun izinlerle oluşturmanız gerekmektedir.

Bunu gidermek için birkaç adım izledim, ancak bazı adımlar sizin için fazla olabilir. Kendi sorunumuz çözerken hepsini uygulamam gerekti, umarım sizin için de faydalı olur.

Komut istemi açılarak, .net framework'ün bulunduğu dizine gidilir. Benim için bu dizin "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" şeklinde. Bu dizindeyken "aspnet_regsql.exe" çalıştırılır. Burada karşımıza çıkan pencere izlenir. Sunucunuzun ismi (sunucu isminiz büyük ihtimalle BİLGİSAYARADI\SQLEXPRESS olacaktır) ve bağlanacağınız veritabanı seçilir ve diyalog sonlandırılır. Yaptığınınz ayarların işe yarayıp yaramadığını anlamak için, Sql Management Studio'yu açıp, veritabanı kullanıcılarını "Datebase Roles"dan kontrol edin. Eğer yeni database roles oluşturulmadıysa aşağıdaki adımıda uygulayabilirsiniz.


Gerekli olmayabilir ancak sunucunuza bağlantı sağlanmazsa bu adımıda uygulayabilirsiniz. Komut isteminde, yine aynı dizindeyken, "aspnet_regsql.exe -A all -sqlexportonly C:\runproviders.sql" yazarsanız, c'ye runproviders.sql oluşturulacaktır. Bunuda Sql Management Studio ile çalıştırabilirsiniz.



Son olarak kullanıcı oluşturmamız gerekiyor. Sql Management studio'da Security altındaki Logins'e (Veritabanlarının altındaki security sekmesiyle karıştırmayın.) gelinir. Buna sağ tıklanarak "New Login" denir. Bende login ismi "ERCAN-DATRON\ASPNET" olduğu için bu isimle bir login oluşturuyorum. Şifre olmaması için “Windows Authentication” seçilir. Eğer şifre ile bağlanmak istiyorsanız, "SQL Server authentication"ı seçmeniz gerekiyor. Kendinize isteğinizce göre aşağıda bulunan üç kutucuk seçilir ya da kaldırılır. Kullanacağınız veritabanını, bu kullanıcı için varsayılan olarak atamanız gerekiyor. Bunun için "Default Database"e tıklayarak, kendi veritabanınızı seçin.



En son olarak, kullanıcı oluşturma penceremize iki küçük ayar yapıyoruz. İlki "Server Roles" sekmesinde "sysadmin"i seçiyoruz.


İkinci olarak da, "User Mapping" sekmesinden, varsayılan olarak atadığımız veritabanını seçiyoruz.