Uzun zamandır C# ile MsSql veritabanındaki bilgileri nasıl alabiliriz ve veritabanına nasıl kayıt atarız gibi sorular geliyor. Bu işlemleri basitçe bir örnekle anlatmak istedim.
İlk olarak veritabanı bağlantısını oluşturmamız gerekiyor, bunun için iki temel bileşene ihtiyacımız var. Birincisi connection string olarak adlandırdığımız veritabanını tanımlayan bir metin. Bu metin içine Mssql serverin adresi(eğer varsa instance name ile beraber), veritabanının adı, kullanıcı bilgileri gibi veritabanına bağlanmamız için gerekli olan bilgileri yazarız. Daha sonra bir Sql connection oluşturarak bağlantıyı yaparız. Bu işlemlerin örneğimizde bulabilirsiniz.
İlk olarak veritabanı işlemlerimizi yapacak bir sınıf oluşturalım. Bu sınıf connection stringimizi app.config dosyasından alsın ve bağlantıyı açsın. Ayrıca select insert gibi işlemleri yapabilmek için bu sınıfa fonksiyonlar tanımlayalım.
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
| using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Configuration; using System.Data; namespace MsSqlIslemleri { public class Veritabani { SqlConnection connection = null ; public Veritabani() { string conString = ConfigurationSettings.AppSettings[ "conString" ]; connection = new SqlConnection(conString); connection.Open(); } public DataTable SelectSorgusuCalistir( string sSorgu) { if (connection.State == ConnectionState.Open) { SqlDataAdapter da = new SqlDataAdapter(sSorgu, connection); da.SelectCommand.ExecuteNonQuery(); DataTable dt = new DataTable(); da.Fill(dt); return dt; } else return null ; } public int InsertveUpdateSorgusuCalistir( string sorgu) { if (connection.State == ConnectionState.Open) { SqlCommand com = new SqlCommand(sorgu); com.CommandType = CommandType.Text; com.Connection = connection; int rowcount = com.ExecuteNonQuery(); return rowcount; } else return 0; } } } |
Veritabanı bağlantısı için kullanacağımız sınıfımız hazır olduğuna göre bir Windows form projesi açalım ve hazırladığımız sınıfı kullanarak veritabanından select ve insert işlemlerini yapalım.
Yukarıdaki gibi bir form tasarlayalım. Forma eklediğimiz butonların altına aşağıdaki kodları yazdıktan sonra kullanılmaya hazır demektir. Yukarıdaki resim select butonuna bastığımız zaman oluşan ekranın görüntüsüdür.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| private void SelectSorgusuButton_Click( object sender, EventArgs e) { Veritabani db = new Veritabani(); DataTable dt = db.SelectSorgusuCalistir( @" select * from Siparis order by SiparisID" ); dataGridView1.DataSource = dt; dataGridView1.DataMember = dt.TableName; } Random r = new Random(100); private void insertsorgusucalistirbutton_Click( object sender, EventArgs e) { Veritabani db = new Veritabani(); int count = db.InsertveUpdateSorgusuCalistir( @" INSERT INTO [Siparis] ([MusteriAdSoyad],[UrunAdi],[Tutar],[Donem]) VALUES ('RastgeleMusteri','UrunAdi',1250,20100405)" ); MessageBox.Show(count.ToString() + "adet kayıt veritabanına atıldı" ); } |
Yukarıdaki kodlarda gördüğünüz gibi bizim _Denemeler diye bir veritabanımız ve bu veritabanında Siparisler tablomuz var. Sizde kodları kendi veritabanınıza göre değiştirmelisiniz.
Hatırlarsanız veritanına ulaşmak için oluşturduğumuz sınıf app.config dosyasından connection stringi alıyordu. Sizde projenize aşağıdaki gibi bir app.config dosyası oluşturmalısınız.
1
2
3
4
5
6
7
|
< configuration > < appSettings > < add key = "conString" value="Data Source=.; Initial Catalog = _Denemeler ;Integrated Security = True " /> </ appSettings > </ configuration > |
Örnek projemizi aşağıdaki linkten indirerek kendi veritabanınıza bağlayabilir ve deneyebilirsiniz. Umarım basit veritabanı işlemleri yapmak isteyen ve bu işe yeni başlayan arkadaşlara yardımcı olabilmişizdir.
Büyük ve orta ölçekli projelerde artık bu tür yapılar kullanmıyoruz. Bunların yerine veritabanı işlemlerimizi otomatik yapan veritabanı ile birebir map olmuş sınıf yapıları kullanıyoruz. Bu sınıfları otomatik olarak oluşturan programlar ile üretiyoruz. Veritabanımızdaki her bir tabloyu sanki bir nesne gibi kullanarak işlemleri çok hızlı gerçekleştirebiliyoruz. Uygun bir zamanda bu tür basit bir örnek vermeye çalışacağım.
Hiç yorum yok:
Yorum Gönder