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 (214)
6 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 (15207)
    6 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