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

berk (224) 11 yıl önce sordu

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 ?

Toplam 1 cevap


alattin (17127) 11 yıl önce cevapladı

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();
        }