C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü

'Visual .NET' forumunda PrincesS tarafından 7 Şubat 2014 tarihinde açılan konu

  1. PrincesS

    PrincesS New Member

    Merhaba Arkadaşlar;



    Kendi Kullandığım Databaseleri Çekme Ve Knight Online Database'i Olup Olmadığını Anlama Yolumu Gösterereceğim.

    Öncelikle Mantığını Anlatayım Sonra Uygulamaya Geçeceğim.

    Veritabanını sys.databases Tablosundan Çekiceğiz Bir Sistem Tablosudur Ve Her Database'den Ulaşılabilir.Knight Online Database'i Olup Olmadığını Anlamak İçinse sys.tables Tablosunu Kullanıcağız.Bu Tablo Databaselere Özgüdür Ve Her Database'in Tablolarını Tutar.Aradığımız Database'e Özgü Bir Tabloyu Aratıp Ayırt Edebiliriz.

    Uygulamaya Geçelim :











    [HIDE]
    PHP:
    public partial class Form1 Form

        
    {

            public 
    Form1()

            {

                
    InitializeComponent();

            }

            
    SqlConnection baglanti = new SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=SSPI;");

            
    SqlCommand komut;

            
    SqlDataReader oku;

            
    string veritabaniKomut "Select name From sys.databases where database_id > 4"// Veritabanlarını Çekmek İçin Kullanacağımız Select Komutu İlk 4 Veritabanı sistem Veritabanı olduğu İçin Onları Almıyoruz.

            
    private void Form1_Load(object senderEventArgs e)

            {

                
    this.MinimumSize this.MaximumSize this.Size;

                try

                {

                    if (
    baglanti.State == ConnectionState.Closed)

                        
    baglanti.Open();

                    

                    
    komut = new SqlCommand(veritabaniKomutbaglanti);

                    
    oku komut.ExecuteReader(CommandBehavior.CloseConnection);

                    while (
    oku.Read())

                    {

                        
    cmbDatabase.Items.Add(oku.GetString(0)); // Veri Tabanlarını Tek Tek ComboBoxa Ekliyoruz.

                    
    }

                    if (!
    oku.IsClosed)

                     
    oku.Close(); 

                }

                catch (
    SqlException ex)

                {

                    
    MessageBox.Show("Veritabanı İşlemleri Sırasında Bir Hata Meydana Geldi.\nHata : "+ex.Message,ex.GetType().Name,MessageBoxButtons.OK,MessageBoxIcon.Error);

                }

                catch (
    InvalidCastException ex)

                {

                    
    MessageBox.Show("Veri Dönüşümleri Sırasında Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                catch (
    ArgumentException ex)

                {

                    
    MessageBox.Show("Argumentler'de Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                catch (
    Exception ex)

                {

                    
    MessageBox.Show("Uygulama Çalışırken Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                finally

                {

                    if (!
    oku.IsClosed)

                        
    oku.Close();

                    if (
    baglanti.State != ConnectionState.Closed)

                        
    baglanti.Close();

                    if (
    cmbDatabase.Items.Count 0)

                        
    cmbDatabase.SelectedIndex 0;

                }

            }

            private 
    void IsKODatabase(string database// Database'in Knight Online Database'i Olup Olmadığını Bu Metotla Kontrol Ediyoruz.Metotda Parametre Olarak Bir Veritabanı İsmi Veriyoruz.

            
    {

                try

                {

                    if (
    baglanti.State == ConnectionState.Closed)

                        
    baglanti.Open();

                    
    komut = new SqlCommand("use "+database+" select COUNT(name) From sys.tables where name In ('USERDATA')"baglanti);// sys.tables Tablosu Database'e Özel Bir Tablo Olduğu İçin Önce Use İle O veritabanını Seçiyoruz.select COUNT(name) From sys.tables where name In ('USERDATA') Komutu İle USERDATA Tablosundan Kaç Tane Var Diye Bakıyoruz.

                    
    bool IsKODB = (int.Parse(komut.ExecuteScalar().ToString()) > 0); // Eğer Varsa IsKODB Değişkenine Tru Değeri Atanacak.

                    
    if (IsKODB)

                        
    MessageBox.Show("Bu Veritabanı , Bir Knight Online Veritabanıdır.","Veritabanı",MessageBoxButtons.OK,MessageBoxIcon.Information);

                    else

                        
    MessageBox.Show("Bu Veritabanı , Bir Knight Online Veritabanı Değildir.""Veritabanı"MessageBoxButtons.OKMessageBoxIcon.Information);

                    

                }

                catch (
    SqlException ex)

                {

                    
    MessageBox.Show("Veritabanı İşlemleri Sırasında Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                catch (
    InvalidCastException ex)

                {

                    
    MessageBox.Show("Veri Dönüşümleri Sırasında Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                catch (
    ArgumentException ex)

                {

                    
    MessageBox.Show("Argumentler'de Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                catch (
    Exception ex)

                {

                    
    MessageBox.Show("Uygulama Çalışırken Bir Hata Meydana Geldi.\nHata : " ex.Messageex.GetType().NameMessageBoxButtons.OKMessageBoxIcon.Error);

                }

                finally

                {

                    if (
    baglanti.State != ConnectionState.Closed)

                        
    baglanti.Close();

                }

            }

            private 
    void btnKontrol_Click(object senderEventArgs e)

            {

                
    IsKODatabase(cmbDatabase.SelectedItem.ToString());

            }  
    [/HIDE]





    Alıntıdır (Tr_Cool_Tr)
     
  2. lagalaga

    lagalaga New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    eyvvallah
     
  3. Constant1ne

    Constant1ne New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    çok teşekkürler
     
  4. Wolf

    Wolf New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    tenks
     
  5. BizHerTrabzon61

    BizHerTrabzon61 New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Thanks youu
     
  6. RedkiT

    RedkiT New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Teşekkürler
     
  7. CHROME

    CHROME New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    teşekkürler.
     
  8. LongTurk

    LongTurk Guest

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    bakalım bir
     
  9. dennyarcher

    dennyarcher New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    teşekkürler.
     
  10. mhmt_erc

    mhmt_erc New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Fcg Fcg jdfnbxhjdfnbxhhhlhkggdhlmmjfzgkn
     
  11. KiraAmora61

    KiraAmora61 New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Teşekkürler..
     
  12. bnmdmbrk

    bnmdmbrk New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Teşekkürler....
     
  13. KarcanOzbal

    KarcanOzbal New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    Teşekkürler
     
  14. CODER2

    CODER2 New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    teşekkürler..
     
  15. Can Aras

    Can Aras New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    teşekkürler
     
  16. murat811

    murat811 New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    sağ ol aslan
     
  17. SaniaLs4Life

    SaniaLs4Life New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    tesekkürler
     
  18. OldMykoCOM

    OldMykoCOM New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    hemen inceliyorum
     
  19. Thunc

    Thunc New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    +++++++++++++++++++++++++++
     
  20. diyar0122

    diyar0122 New Member

    Cevap: C# - SQL Serverdan Veritabanlarını Çekmek Ve Knight Online Database Kontrolü



    eywwwwwww
     

Bu Sayfayı Paylaş