Daha önceki yazılarımızda C# Windows Form ve WPF Form ile veritabanı bağlantısı oluşturmanın çeşitli yöntemlerini görmüştük. Bu yazımızda ise C# Console Uygulamasında Sql Server Veri tabanından veri çekme, veri ekleme, veri güncelleme ve veri silme işlemlerini gerçekleştireceğiz.
Örneğimizde öncelikle kullanıcıdan yapmak istediği işlemle ilgili bilgi alınmasını ve daha sonra ilgili işlemin yapılmasını sağlayacağız.
Listeleme işlemini hangi sınıfın listeleneceği bilgisini de çekerek yapacağız.
Kullacağımız veritabanı kutuphane, tablo ise ogrenci olacak.
Kayıt Listeleme, Ekleme, Güncelleme ve Silme işlemlerinin herbirini metot olarak oluşturacağız ve daha sonra kullanıcının seçimine göre ilgili metodu çağırarak işlemleri gerçekleştireceğiz.
Öncelikle;
1 2 3 4 |
using System.Data; using System.Data.SqlClient; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
static void Main(string[] args) { Console.WriteLine("1.Listele"); Console.WriteLine("2.Ekle"); Console.WriteLine("3.Güncelle"); Console.WriteLine("4.Sil"); Console.WriteLine("Seçiminiz:"); string sec = Console.ReadLine(); if(sec=="1") { Listele(); } else if (sec == "2") { Ekle(); Listele(); } else if(sec=="3") { Guncelle(); Listele(); } else if(sec=="4") { Sil(); Listele(); } Console.ReadLine(); } static SqlConnection baglanti; static SqlCommand komut; static SqlDataReader reader; public static void Listele() { int sayac=0; Console.WriteLine("Sınıf :"); string sinif=Console.ReadLine(); baglanti = new SqlConnection(); baglanti.ConnectionString = "Data Source=.;Initial Catalog=kutuphane;Integrated Security=SSPI"; komut = new SqlCommand(); komut.Connection = baglanti; komut.CommandText = "SELECT * FROM ogrenci WHERE sinif='" + sinif + "'"; baglanti.Open(); reader = komut.ExecuteReader(); while(reader.Read()) { sayac++; Console.WriteLine(reader[0] + ":" + reader[1] + " " + reader[2]); } baglanti.Close(); Console.WriteLine("Mevcut :" + sayac + " kişi."); } public static void Ekle() { Console.WriteLine("Ad Nedir:"); string ad = Console.ReadLine(); Console.WriteLine("Soyadı Nedir:"); string soyad = Console.ReadLine(); Console.WriteLine("Sınıf Nedir:"); string sinif = Console.ReadLine(); baglanti = new SqlConnection(); baglanti.ConnectionString = "Data Source=.;Initial Catalog=kutuphane;Integrated Security=SSPI"; komut = new SqlCommand(); komut.Connection = baglanti; komut.CommandText = "INSERT INTO ogrenci (ograd,ogrsoyad,sinif) VALUES ('"+ad+"','"+soyad+"','"+sinif+"')"; baglanti.Open(); int sonuc=komut.ExecuteNonQuery(); baglanti.Close(); if(sonuc>0) { Console.WriteLine("Eklendi"); }else { Console.WriteLine("Başarısız"); } } public static void Guncelle() { Console.WriteLine("Numara Nedir"); int no = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ad Nedir:"); string ad = Console.ReadLine(); Console.WriteLine("Soyadı Nedir:"); string soyad = Console.ReadLine(); Console.WriteLine("Sınıf Nedir:"); string sinif = Console.ReadLine(); baglanti = new SqlConnection(); baglanti.ConnectionString = "Data Source=.;Initial Catalog=kutuphane;Integrated Security=SSPI"; komut = new SqlCommand(); komut.Connection = baglanti; komut.CommandText = "UPDATE ogrenci SET ograd='"+ad+"',ogrsoyad='"+soyad+"',sinif='"+sinif+"' WHERE ogrno="+no.ToString(); baglanti.Open(); int sonuc = komut.ExecuteNonQuery(); baglanti.Close(); if (sonuc > 0) { Console.WriteLine("Güncellendi"); } else { Console.WriteLine("Başarısız"); } } public static void Sil() { Console.WriteLine("Numara Nedir"); int no = Convert.ToInt32(Console.ReadLine()); baglanti = new SqlConnection(); baglanti.ConnectionString = "Data Source=.;Initial Catalog=kutuphane;Integrated Security=SSPI"; komut = new SqlCommand(); komut.Connection = baglanti; komut.CommandText = "DELETE FROM ogrenci WHERE ogrno="+no+""; baglanti.Open(); int sonuc = komut.ExecuteNonQuery(); baglanti.Close(); if (sonuc > 0) { Console.WriteLine("Silindi."); } else { Console.WriteLine("Başarısız"); } } } |
sql command ve sqlconnection hatası alıyorum neden acaba
Connectionstring’de hata var muhtemelen, localden mi bağlanıyorsunuz?
Invalid column name ‘sinif’. hatası veriyor
Veritabani tablosuna sinif adinda bir alan daha ekleyin metin türünde.
Yazdığınız kodlar çalışmıyor mümkünse düzeltirmisiniz
Kodlar çalışıyor. Veritabanı ismi tablo ismi ve alan isimlerini kontrol edebilirsiniz.
sql serveri nereden indireceğim yardımcı olur musunuz