Bir Konsol Uygulaması İçinde ADO.NET Kullanarak SQL Verilerine Erişme

Bir Konsol Uygulaması İçinde ADO.NET Kullanarak SQL Verilerine Erişme

Bu laboratuvar çalışmasında, varolan bir SQL veritabanını sorgulamak için ADO.NET kullanan bir .NET Konsolu projesiyle bir Visual Studio çözümü oluşturacaksınız. Sorgunun sonucu doğrudan konsol penceresine yazdırılacaktır.

NOT: Bu uygulamayı yapmadan önce bu yazıda belirtilenleri tamamlanmış olmalısınız. 

  1. Visual Studio 2017’yi açın.
  2. Visual Studio penceresinin üst kısmında; Dosya menüsünü tıklayın, Fareyle Yeni menü seçeneğinin üzerine gelin ve ardından Proje … menü seçeneğini seçin.
  3. Yeni Proje iletişim kutusunda, aşağıdaki eylemleri gerçekleştirin:
    1. İletişim kutusunun üst kısmında, .NET sürümünüz olarak .NET Framework 4.6.2’yi seçin. 
    2. Şablonlar düğümünü genişletin, Visual C# düğümünü genişletin ve sonra Windows Klasik Masaüstü düğümünü seçin.
    3. Konsol Uygulaması (.NET Framework) şablonunu seçin. 
    4. Name(Ad) kutusuna, yapBenzet.Lab.Console değerini girin. 
    5. Çözüm deyimi için Dizin oluştur (Create directory for solution) seçeneğinin yanındaki onay kutusunun seçildiğinden emin olun. 
    6. Tamam düğmesini tıklayın.
  4. Visual Studio’nun yeni çözümü ve projeyi yaratmasını bekleyin.
  5. Proje oluşturulduktan sonra Visual Studio otomatik olarak Program.cs sınıf dosyasını açacaktır. Bu dosyayı açık bırakın.
  6. Visual Studio penceresinin üstündeki Görünüm menüsünü tıklayın ve ardından Çözüm Aracı seçeneğini seçin. 
  7. Solution Explorer bölmesinde, proje dosyalarını ortaya çıkarmak için yapBenzet.Lab.Console projesini genişletin. 
  8. Şu anda açık olan Program.cs dosyasında, Sistem ad alanı için bir using ifadesinin bulunduğundan emin olun: 
    using System;
  9. System.Threading.Tasks ad alanı için bir using ifadesinin bulunduğundan emin olun:
    using System.Threading.Tasks;
  10. System.Data ad alanı için yeni bir using deyimi ekleyin:
    using System.Data;
  11. System.Data.SqlClient ad alanı için yeni bir using deyimi ekleyin:
    using System.Data.SqlClient;
  12. Aşağıdaki imza ile yeni bir RunAsync yöntemi ekleyin: 
    static async Görev RunAsync () 
  13. RunAsync yönteminde, connectionString adlı bir dize değişkeni oluşturmak için yeni bir satır ekleyin:
    Data Source = (localdb) \\ MSSQLLOCALDB; Initial Catalog = ContosoDB ;: 

    string connectionString = 'Veri Kaynağı = (localdb) \\ MSSQLLOCALDB; İlk Katalog = ContosoDB;'; 
  14. Son kod satırından sonra, connectionString değişkenini parametre olarak kullanarak SqlConnection sınıfının yeni bir örneğini başlatan bir using bloğu ekleyin: 
    using (SqlConnection connection = new SqlConnection (connectionString)) 
    {
    } 

     

  15. using bloğu içinde , SqlConnection sınıfının OpenAsync yöntemini çağırmak için yeni bir kod satırı ekleyin ve bu çağrının sonucunu bekleyin: 

    await connection.OpenAsync (); 

     

  16. Konsol penceresine ‘Başarılı Bağlantı’ mesajını yazmak için yeni bir kod satırı ekleyin: 

    System.Console.WriteLine ('Connection Başarılı'); 
  17. Kullanım bloğu içinde, SqlConnection örneğinin CreateCommand yöntemini kullanarak SqlCommand sınıfının bir örneğini oluşturmak için başka bir kod satırı ekleyin. 
    SqlCommand komutu = connection.CreateCommand (); 
  18. Komut değişkeninin CommandType mülkünün özelliklerini CommandType.Text’e ayarlamak için yeni bir kod satırı ekleyin: 
    command.CommandType = CommandType.Text; 

     

  19. Komut değişkeninin CommandText özelliğinin özelliğini ‘SELECT TOP (25) MüşteriNo, FirstName, LastName FROMCustom’ olarak ayarlamak için yeni bir kod satırı ekleyin: 

    command.CommandText = 'SELECT COUNT (MüşteriNo) AS CustomerCount, SalesPerson AS Contributor FROM Customers GROUP BY SalesPerson ORDER BY CustomerCount DESC '; 
  20. Komut değişkeninin ExecuteReaderAsync yöntemini çağırmak için yeni bir kod satırı ekleyin, sonucu bekleyin ve daha sonra reader adlı bir SqlDataReader türünde bir değişkende saklar: 
    SqlDataReader reader = await command.ExecuteReaderAsync (); 

     

  21. Bir asenkron bekleme sonrasında readAsync yönteminin sonucu doğru olduğunda, çalışacak son kod satırından sonra bir while bloğu ekleyin: 

    while (await reader.ReadAsync ()) 
    {
    } 

     

  22. while bloğu dahilinde, sonuçları konsol penceresine yazmak için bir kod satırı ekleyin: 

    System.Console.WriteLine ($ '{await reader.GetFieldValueAsync (1), 25} \\ t {await reader.GetFieldValueAsync (0) : 000} Müşteriler '); 
  23. Aşağıdaki imza ile Ana yöntemi bulun: 
    static void Main (string [] args) 

     

  24. RunAsync yöntemini çağırmak ve asenkron Görevin tamamlanmasını beklemek için ana yöntemde aşağıdaki kod satırını ekleyin: 

    RunAsync () .Bekleyin(); 
  25. Son kod satırından sonra ‘Uygulama tamamlandı’ mesajını yazmak için yeni bir kod satırı ekleyin, çıkmak için herhangi bir tuşa basın. konsol penceresine: 
    System.Console.WriteLine ('Uygulama yürütmeyi tamamladı. Çıkmak için herhangi bir tuşa basın.'); 
  26. Son kod satırından sonra, yeni tuş vuruşunu konsol penceresinden okumak için yeni bir kod satırı ekleyin: 
    System.Console.ReadKey (); 
  27. Visual Studio penceresinin üstünde; Hata Ayıkla menüsünü tıklatın ve ardından Hata Ayıklamasını Başlat menü seçeneğini belirleyin. 
  28. Konsol penceresine yazdırılan verilere dikkat edin. Bu adımda konsol penceresine aktarılan verilerle ilgili doğrulama soruları sorulacaktır. 
  29. Visual Studio uygulama örneğini kapatın.

 


 

En sonda elde etmeniz gereken kod aşağıdaki gibi olmalıdır : 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data;
using System.Data.SqlClient;

namespace yapBenzet.Lab.Console
{
    class Program
    {
        static async Task RunAsync()
        {
            string connectionString = @"Data Source=(localdb)\MSSQLLOCALDB;Initial Catalog=ContosoDB;";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                await connection.OpenAsync();

                SqlCommand command = connection.CreateCommand();

                command.CommandType = CommandType.Text;

                command.CommandText = "SELECT COUNT(CustomerId) AS CustomerCount, SalesPerson AS Contributor FROM Customers GROUP BY SalesPerson ORDER BY CustomerCount DESC";

                SqlDataReader reader = await command.ExecuteReaderAsync();

                while (await reader.ReadAsync())
                {
                    System.Console.WriteLine($"{await reader.GetFieldValueAsync<string>(1),25}\t{await reader.GetFieldValueAsync<int>(0):000} Customers");
                }
            }

            System.Console.WriteLine("Connection Successful");
        }
        static void Main(string[] args)
        {

            RunAsync().Wait();

            System.Console.WriteLine("Application has completed execution. Press any key to exit.");


            System.Console.ReadKey();
        }
    }
}

Program Çalıştığında elde edilecek olan Ekran görüntüsü aşağıdaki gibidir :