SMO Verilənlər Bazası(Database) sənəd qrupları(File Group) və sənədlərin siyahısı
Salam dostlar. Smo ilə bağlı yazmış olduğum məqalə silsiləsinin növbəti bəhsinə xoş gəldiniz. Söz verdiyim kimi bu bəhsimiz SQL serverə bağlanaraq Severdə olan Verilənlər bazaları və onların fayıl qruplar ilə faqyl qovluqlarını sorğuyla çağıraraq ələ alacağıq inşallah. Söhbəti çox uzatmadan proqramımızı yazmağa başlayaq.
- Kod sətirlərinə keçməzdən əvvəl proqramımızın visual quruluşuna nəzər salaq:
İlk şəkildən də gördüyünüz kimi keçən məqaləmizdə hazırlamış olduğumuz proqrama əlaavələr edərək davam edirik. Birinci şəklə nəzər salsaz görəcəksiniz ki yeni 1 ədəd class və Windows Form əlavə olunub qalan hər şey eynidir.
İkinci şəkil sizə keçən məqalədən tanışdır ama keçən məqaləmizdə sadəcə bir ədəd label vardı üzərində bu məqaləmizlə bərabər yeni görüntü vermişəm, child form ğzəlliyi verərək bir ədəd GroupBox və bir bir ədəd Button artırmışam. Bundan sonrakı məqalələrdə sadəcə buttonlar atıracağam bu form üzərinə inşallah. Yeni əlavə etdiyimiz formaysa bir ədəd panel və 3 ədəd ListBox əlavə etmişəm. Görüntü haqda tanışlıq verdikdən sonra artıq proqramımızın sorğular bölümünə keşək.
- Dizayn və hətta proqramlarınızın alqoritma təyinində tamamiylə azadsınız, burada etdiklərim məcburi deyil. Siz bildiyiniz istənilən .Net dilində və eləcədə C#-da fərqli alqoritm və ya fərqli dizaynistifadə edərək eyni nəticələri əldə edə bilərsiniz.
Yeni əlavə etdiyimiz class-a keçərək aşağıdakı kodları yazaq:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; namespace SMO_Nedir { public class VerilenlerBazasi_SenedQrupu_SenedQovlugu { private Server srv; public Server Srv { get { return srv; } set { srv = value; } } /*Aşağıda gördüyünüz sorğularla Listlər əlavə edək*/ public List<string> vb = new List<string>(); public List<string> _fg = new List<string>(); public List<string> ff = new List<string>(); #region ---Verilenler bazaları, sənəd qrupları və sənədlər haqqında məlumatları göstər public void VB_SQ_SQ() { foreach(Database db in Srv.Databases) { vb.Add(db.Name); foreach (FileGroup fg in db.FileGroups) { _fg.Add(fg.Name); foreach(DataFile df in fg.Files) { ff.Add(" " + df.Name + " - " + df.FileName); } } } } #endregion } }
Classımızdakı sorğularımızı yazdıqdan sonra yeni əlavə etdiyimiz Formumuzun kod sətirlərinə keçərək aşağıdakı kimi sorğularımız yazaq:
using Microsoft.SqlServer.Management.Smo; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SMO_Nedir { public partial class DB_FG_FF : Form { private Server srv; public Server Srv { get { return srv; } set { srv = value; } } public DB_FG_FF() { InitializeComponent(); } VerilenlerBazasi_SenedQrupu_SenedQovlugu _vb = new VerilenlerBazasi_SenedQrupu_SenedQovlugu(); private void DB_FG_FF_Load(object sender, EventArgs e) { _vb.Srv = srv; _vb.VB_SQ_SQ(); listBox1.Items.AddRange (_vb.vb.ToArray<string>()); listBox2.Items.AddRange(_vb._fg.ToArray<string>()); listBox3.Items.AddRange(_vb.ff.ToArray<string>()); } } }
Daha sonra isə son olaraq Sql_managment formumuzun kod sətirlərinə keçərək aşağıdakı kimi kodlarımızı yazaq.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; namespace SMO_Nedir { public partial class Smo_Managment : Form { private Server srv; public Server Srv { get { return srv; } set { srv = value; } } public Smo_Managment() { InitializeComponent(); } private void Smo_Managment_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); } private void Vb_Fq_Fq_Click(object sender, EventArgs e) { DB_FG_FF db_fg_ff = new DB_FG_FF(); db_fg_ff.Srv = srv; db_fg_ff.MdiParent = this; db_fg_ff.Show(); } } }
Artıq proqramımızın ikinci mərhələsidə tamamlandı. Test edib gülümsəyə bilərik :)…
Yararlı olması ümüdü ilə…
Şərhlər ( 1 )
Təşəkkürlər, gözəl məqalədir.