مستر کد
mrcode.wikibix.ir

ایجاد کلاس اتصال به پایگاه های داده در #c

نویسنده : محمد پارسایی | زمان انتشار : 15 مرداد 1400 ساعت 13:28

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



اغلب برنامه نویسان تازه کار در #C به منظور دسترسی به دیتابیس به روش ado برای توابع مختلف چندین و چند بار کد دسترسی به دیتابیس را می نویسند، مثل اینکه برای هر عمل insert ،update، delete و غیره کد را به طور کامل تکرار می کنند.

در آموزش امروز، چگونگی ایجاد یک کلاس برای اتصال به دیتابیس را با هم مرور خواهیم کرد. از این پس شما می توانید، این کلاس را در هر پروژه ای که می خواهید به دیتابیس متصل شوید، استفاده کنید.

دوستان عزیز ورژن 2 با قابلیت های ویژه مثل اتصال به پایگاه داده اکسس ، چک کردن اتصال با پایگاه داده و...... منتشر شد.

شما میتوانید فایل این کلاس را بصورت اپن سورس در گیت هاب مشاهده کنید.

لینک گیت هاب


برای درک دو متد استفاده شده، شما باید با DataGridView و SqlDataReader آشنایی داشته باشید. چون هدف از این مقاله، آموزش روشی است برای جلوگیری از تکرار نوشتن کد دسترسی به دیتابیس است.

گام اول:

فضای نام (Namespace)های زیر را وارد کنید.

using System;  
using System.Windows.Forms;
using System.Data;  
using System.Data.SqlClient;  

گام دوم:

مانند کد زیر یک فضای نام و کلاسی در آن ایجا کنید.
 

namespace ConnectionNamespace  
{  
   public class Connection_Query  
   {  
     //اینجا هر کد یا متدی رو میخواید بنویسید
   }  
}

در ادامه

گام سوم:

string ConnectionString = "";  
SqlConnection con;

گام چهارم:

یک متد برای باز کردن Connection بسازید. در کد زیر، متد OpenConnection را برای اتصال و فراخوانی دیتابیس ساختیم.

public void OpenConection()  
{  
   con = new SqlConnection(ConnectionString);  
   con.Open();  
}

گام پنجم:

حالا متد CloseConnection را می سازیم. پس از پایان کامل فرایند فراخوانی این متد، اتصالی که در گام 4 باز کرده بودیم، می بندد.

public void CloseConnection()  
{  
   con.Close();  
}

گام ششم:

متد ExecuteQueries: هر زمانی که شما بخواهید یک کوئری مانند  insert ،update، delete اجرا کنید، به سادگی می توانید این تابع را با ساختن شی ای از آن فراخوانی کنید و کوئری خود را به آن ارسال کنید.

public void ExecuteQueries(string Query_)  
{  
    SqlCommand cmd = new SqlCommand(Query_,con);  
    cmd.ExecuteNonQuery();  
}

گام هفتم:

در این مرحله، متد SqlDataReader را ایجاد می کنیم. اگر چگونگی استفاده از SqlDataReader را یاد بگیرید، متوجه خواهید شد که از این کلاس چگونه استفاده کنید. در این مرحله، استفاده از DataReader را توضیح خواهم داد، چرا که همانطور که می دانید هدف اصلی من در این مقاله ساخت کلاس اتصال است.

این تابع داده ای از نوع SqlDataReader برمی گرداند. شی ای از نوع SqlDataReader بسازید و داخل آن متد را با کوئری مربوطه (به عنوان آرگومان) فراخوانی کنید.

public SqlDataReader DataReader(string Query_)  
{  
    SqlCommand cmd = new SqlCommand(Query_,con);  
    SqlDataReader dr = cmd.ExecuteReader();  
    return dr;  
}

گام هشتم:

و اما متد ShowData را در این مرحله مرور خواهیم کرد. همانطور که پیش تر گفتم، باید آشنایی نسبی با DataGridView نیز داشته باشید تا طرز کار این متد را درک کنید.

این متد شی ای برمی گرداند که والد همه متغیرها در #C است. ما DataSource مربوط به GridView را با این متد و یک کوئری به عنوان آرگومان، مقداردهی می کنیم.

public object ShowData(string Query_)  
{  
    SqlDataAdapter dr = new SqlDataAdapter(Query_, ConnectionString);  
    DataSet ds = new DataSet();  
    dr.Fill(ds);  
    object dataum = ds.Tables[0];  
    return dataum;  
}

تذکر: مستندسازی فایل مربوط به کلاس نیز تهیه شده است که در ادامه مرور می کنیم:

کلاسی که بحث کردیم، کلاسی با عنوان "Connection_Class" می باشد که برای اجرای insert، update، delete و search و نمایش آنها در DataGridView و همچنین اجرای عملیات مربوط به SqlDataReader تهیه شده است.

متدهای عمومی (Public)

برای باز کردن و ایجاد اتصال فراخوانی می شود.

void CloseConnection ()

برای بستن و پایان اتصال فراخوانی می شود.

void ExecuteQueries (string Query_)

برای اجرای توابع insert، update و delete فراخوانی می شود.

SqlDataReader DataReader (string Query_)

زمانی که بخواهیم داده ها را در TextBox یا Label نشان دهیم، این متد را فراخوانی می کنیم.

کد زیر، نحوه استفاده از این متد را نشان می دهد.

SqlDataReader dr = ClassObject.DataReader("Select * From Student");  
dr.Read();  
   
textBox1.Text = dr["Stdnt_Name"].tostring();

این متد نیز برای نمایش داده ها در DataGridView فراخوانی می شود. کد زیر، نحوه استفاده از این متد را نشان می دهد.

dataGridView1.datasource = ClassObject.ShowDataInGridView("Select * From Student");

تابع بکاپ backup هم برای دوستانی هست که میخوان از دیتابیس خود نسخه پشتیبان همراه با داده ها تهیه کنند.

کافیه یک دکمه در فرم ایجاد کنید در رویداد کلیک آن تابع را صدا زده و در یک رشته نام دیتابیس را ارسال کنید.

برای ریستور کردن هم به همین صورت

تابع scaler هم وجود دارد برای زمانی که احتیاج دارید خروجی داشته باشید.

در فایل زیر کد کامل کلاس همراه با توضیحات و نمونه کد قرار داده شده است.

دانلود فایل



منبع: bytelearn.ir