C# ile Sql'de database var mı yok mu diye nasıl kontrol edilir?

1

C# form application ile bağlantı kurduğum bir Sql server da "VeriTabani" isminde bir database var mı diye nasıl kontrol edebilirim. Yoksa eğer C# tan  oluşturması için oluşturucak  "create database VeriTabani" kodunu nasıl Sql e gönderebilirim ?

berk berk (210)
5 yıl önce sordu

Toplam 1 Cevap


1

SQL sunucu içerisinde mevcut veritabanı bilgileri MASTER tablosunda tutulur. Master tablosu üzerinde çalıştırılacak bir sorgu ile veritabanı var mı yok mu kontrol edilebilir. Aşağıda C# ile yazılmış Sql sunucu üzerinde veritabanı var mı yok mu diye kontrol eden bir kod örneği mevcut.

  public void Kontrol()
        {
            string VeritataniAdi ="Ornek1";
            //SQL sunucu icin baglanti oluştur            
            SqlConnection baglanti = new SqlConnection("server=.\\SQLEXPRESS;database=Master; Integrated Security=SSPI");
            //SQL icerisindeki tüm veritabanı bilgileri MASTER tablosunda tutulur. Master Tablosunu sorgula
            SqlCommand komut = new SqlCommand("SELECT Count(name) FROM master.dbo.sysdatabases WHERE name=@prmVeritabani", baglanti);
            //Komut nesnesine parametre ile kontrol edilecek veritabanin adini geciyoruz. 
            komut.Parameters.AddWithValue("@prmVeriTabani", VeritataniAdi);
            //Baglantiyi ac.
            baglanti.Open();
            //Executescalar ile sorgu sonucunda dönen degeri aliyoruz. Veritabanı varsa 1 yoksa 0 dönecektir.
            int sonuc = (int)komut.ExecuteScalar();
            //işlem bitti. Baglantiyi kapatiyoruz.
           
            //Veritabanı var ise yapılacaklar
            if (sonuc != 0)
            {
                MessageBox.Show("Bu isimde bir veritabanı var.");
            }
            else
            {
                //Veritabanı yok ise yapılacaklar
                //Veritabanı yarat
                komut.CommandText = "Create Database " + VeritataniAdi;              
                komut.ExecuteNonQuery();
                MessageBox.Show("Bu isimde bir veritabanı yaratıldı.");
            }
            baglanti.Close();
        }

 

alattin alattin (13141)
5 yıl önce cevaplandı

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol