Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuz, yalnızca saklı yordamları yürüterek verilere erişmek için temel bir uçtan uca LINQ to SQL senaryosu sağlar. Bu yaklaşım genellikle veritabanı yöneticileri tarafından veri deposuna erişim biçimini sınırlamak için kullanılır.
Uyarı
LinQ to SQL uygulamalarında varsayılan davranışı geçersiz kılmak için, özellikle Create, Update ve Delete işlemleri için saklı yordamları da kullanabilirsiniz. Daha fazla bilgi için bkz. Ekleme, Güncelleştirme ve Silme İşlemlerini Özelleştirme.
Bu kılavuzda, Northwind örnek veritabanındaki saklı yordamlara eşlenmiş iki yöntem kullanacaksınız: CustOrdersDetail ve CustOrderHist. Eşleme, bir C# dosyası oluşturmak için SqlMetal komut satırı aracını çalıştırdığınızda gerçekleşir. Daha fazla bilgi için bu kılavuzun devamında yer alan Önkoşullar bölümüne bakın.
Bu izlenecek yol Nesne İlişkisel Tasarımcısı'nı kullanmaz. Visual Studio kullanan geliştiriciler, saklı yordam işlevselliğini uygulamak için O/R Tasarımcısı'nı da kullanabilir. Bkz. Visual Studio'da LINQ to SQL Araçları.
Uyarı
Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE'yi Kişiselleştirme.
Bu kılavuz Visual C# Geliştirme Ayarları kullanılarak yazılmıştır.
Önkoşullar
Bu izlenecek yol aşağıdakileri gerektirir:
Bu kılavuzda, dosyaları tutmak için ayrılmış bir klasör ("c:\linqtest7") kullanılır. İzlenecek yol başlamadan önce bu klasörü oluşturun.
Northwind örnek veritabanı.
Geliştirme bilgisayarınızda bu veritabanı yoksa, microsoft indirme sitesinden indirebilirsiniz. Yönergeler için bkz. Örnek Veritabanlarını İndirme. Veritabanını indirdikten sonra northwnd.mdf dosyasını c:\linqtest7 klasörüne kopyalayın.
Northwind veritabanından oluşturulan bir C# kod dosyası.
Bu kılavuz aşağıdaki komut satırıyla SqlMetal aracı kullanılarak yazılmıştır:
sqlmetal /code:"c:\linqtest7\northwind.cs" /language:csharp "c:\linqtest7\northwnd.mdf" /sprocs /functions /pluralize
Daha fazla bilgi için bkz. SqlMetal.exe (Kod Oluşturma Aracı).
Genel Bakış
Bu kılavuz altı ana görevden oluşur:
Visual Studio'da LINQ to SQL çözümünü ayarlama.
System.Data.Linq derlemesini projeye ekleme.
Veritabanına kod dosyasını projeye ekleme.
Veritabanıyla bağlantı oluşturma.
Kullanıcı arabirimini ayarlama.
Uygulamayı çalıştırma ve test etme.
LINQ to SQL Çözümü Oluşturma
Bu ilk görevde, LINQ to SQL projesi oluşturmak ve çalıştırmak için gerekli başvuruları içeren bir Visual Studio çözümü oluşturacaksınız.
LINQ to SQL çözümü oluşturmak için
Visual Studio Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın.
Yeni Proje iletişim kutusundaki Proje türleri bölmesinde Visual C# öğesine tıklayın.
Şablonlar bölmesinde Windows Forms Uygulaması'na tıklayın.
Ad kutusuna SprocOnlyApp yazın.
Konum kutusunda proje dosyalarınızı nerede depolamak istediğinizi doğrulayın.
Tamam'a tıklayın.
Windows Forms Tasarımcısı açılır.
LINQ'i SQL Derleme Başvurusuna Ekleme
LINQ to SQL derlemesi standart Windows Forms Uygulaması şablonuna dahil değildir. Aşağıdaki adımlarda açıklandığı gibi derlemeyi kendiniz eklemeniz gerekir:
System.Data.Linq.dll eklemek için
Çözüm Gezgini'da Başvurular'a sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın.
Başvuru Ekle iletişim kutusunda .NET'e tıklayın, System.Data.Linq derlemesine ve ardından Tamam'a tıklayın.
Projeye montaj eklendi.
Northwind Kod Dosyasını Projeye Ekleme
Bu adımda, Northwind örnek veritabanından bir kod dosyası oluşturmak için SqlMetal aracını kullandığınız varsayılır. Daha fazla bilgi için bu kılavuzun önceki bölümlerinde yer alan Önkoşullar bölümüne bakın.
Northwind kod dosyasını projeye eklemek için
Project menüsünde, Varolan Öğe Ekleöğesine tıklayın.
Varolan Öğe Ekle iletişim kutusunda c:\linqtest7\northwind.cs gidin ve Ekle'ye tıklayın.
northwind.cs dosyası projeye eklenir.
Veritabanı Bağlantısı Oluşturma
Bu adımda Northwind örnek veritabanı bağlantısını tanımlarsınız. Bu kılavuzda yol olarak "c:\linqtest7\northwnd.mdf" kullanılır.
Veritabanı bağlantısını oluşturmak için
Çözüm Gezgini'ndeForm1.cs sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
Sınıfına aşağıdaki kodu
Form1yazın:Northwnd db = new Northwnd(@"c:\linqtest7\northwnd.mdf");
Kullanıcı Arabirimini Ayarlama
Bu görevde, kullanıcıların veritabanındaki verilere erişmek için saklı yordamları yürütebilmesi için bir arabirim ayarlarsınız. Bu kılavuzla geliştirdiğiniz uygulamalarda, kullanıcılar veritabanındaki verilere yalnızca uygulamaya eklenmiş saklı yordamları kullanarak erişebilir.
Kullanıcı arabirimini ayarlamak için
Windows Forms Designer'a geri dönün (Form1.cs[Tasarım]).
Görünüm menüsünde Araç Kutusu'na tıklayın.
Araç kutusu açılır.
Uyarı
Bu bölümdeki kalan adımları gerçekleştirirken araç kutusunu açık tutmak için AutoHide pushpin öğesine tıklayın.
Araç kutusundan form1'e iki düğme, iki metin kutusu ve iki etiket sürükleyin.
Denetimleri, eşlik eden çizimde olduğu gibi düzenleyin. Denetimlerin kolayca sığması için Form1'i genişletin.
Etiket1'e sağ tıklayın ve ardından Özellikler'e tıklayın.
Text özelliğini label1 olan Enter OrderID: olarak değiştirin.
Etiket2 için de aynı şekilde, Text özelliğini label2 yerine Enter CustomerID: olarak değiştirin.
Aynı şekilde, düğme1 için Text özelliğini Sipariş Ayrıntıları olarak değiştirin.
button2 için Text özelliğini Sipariş Geçmişi olarak değiştirin.
Tüm metnin görünür olması için düğme denetimlerini genişletin.
Düğme tıklamalarını işlemek için
Form1'deSipariş Ayrıntıları'na çift tıklayarak düğme1 olay işleyicisini kod düzenleyicisinde açın.
İşleyiciye
button1aşağıdaki kodu yazın:// Declare a variable to hold the contents of // textBox1 as an argument for the stored // procedure. string param = textBox1.Text; // Declare a variable to hold the results // returned by the stored procedure. var custquery = db.CustOrdersDetail(Convert.ToInt32(param)); // Execute the stored procedure and display the results. string msg = ""; foreach (CustOrdersDetailResult custOrdersDetail in custquery) { msg = msg + custOrdersDetail.ProductName + "\n"; } if (msg == "") msg = "No results."; MessageBox.Show(msg); // Clear the variables before continuing. param = ""; textBox1.Text = "";Şimdi, işleyiciyi açmak için Form1'dedüğme2'ye
button2çift tıklayınİşleyiciye
button2aşağıdaki kodu yazın:// Comments in the code for button2 are the same // as for button1. string param = textBox2.Text; var custquery = db.CustOrderHist(param); string msg = ""; foreach (CustOrderHistResult custOrdHist in custquery) { msg = msg + custOrdHist.ProductName + "\n"; } MessageBox.Show(msg); param = ""; textBox2.Text = "";
Uygulamayı Test Etme
Şimdi uygulamanızı test etme zamanı geldi. Veri deposuyla etkileşiminizin, iki saklı yordamın gerçekleştirebileceği eylemlerle sınırlı olduğunu unutmayın. Bu eylemler, girdiğiniz herhangi bir sipariş kimliği için dahil edilen ürünleri iade etmek veya girdiğiniz herhangi bir CustomerID için sipariş edilen ürünlerin geçmişini iade etmektir.
Uygulamayı test etmek için
Hata ayıklamayı başlatmak için F5 tuşuna basın.
Form1 görüntülenir.
SiparişKimliği Girin kutusuna yazın
10249ve Sipariş Ayrıntıları'na tıklayın.İleti kutusunda, 10249 sırasına dahil edilen ürünler listelenir.
İleti kutusunu kapatmak için Tamam'a tıklayın.
CustomerID Girin kutusuna yazın
ALFKIve Sipariş Geçmişi'ne tıklayın.Müşteri ALFKI'sinin sipariş geçmişini listeleyen bir ileti kutusu görüntülenir.
İleti kutusunu kapatmak için Tamam'a tıklayın.
SiparişKimliği Girin kutusuna yazın
123ve Sipariş Ayrıntıları'na tıklayın."Sonuç yok" ifadesini gösteren bir ileti kutusu görüntülenir.
İleti kutusunu kapatmak için Tamam'a tıklayın.
Hata Ayıkla menüsünde Hata ayıklamayı durdur'a tıklayın.
Hata ayıklama oturumu kapanır.
Denemeyi tamamladıysanız, Dosya menüsünde Projeyi Kapat'a tıklayabilir ve istendiğinde projenizi kaydedebilirsiniz.
Sonraki Adımlar
Bazı değişiklikler yaparak bu projeyi geliştirebilirsiniz. Örneğin, kullanılabilir saklı yordamları bir liste kutusunda listeleyip kullanıcının yürütülecek yordamları seçmesini sağlayabilirsiniz. Ayrıca raporların çıkışını bir metin dosyasına akışla aktarabilirsiniz.