ایجاد کلاس اتصال به پایگاه های داده در #C
یکشنبه 4 مرداد 1394در این مقاله، چگونگی ایجاد یک کلاس برای اتصال به دیتابیس را با هم مرور خواهیم کرد. از این پس شما می توانید، این کلاس را در هر پروژه ای که می خواهید به دیتابیس متصل شوید، استفاده کنید.
اغلب برنامه نویسان تازه کار در #C به منظور دسترسی به دیتابیس، برای توابع مختلف چندین و چند بار کد دسترسی به دیتابیس را می نویسند، مثل اینکه برای هر عمل insert ،update، delete و غیره کد را به طور کامل تکرار می کنند.
تذکر: برای درک دو متد استفاده شده در این مقاله، شما باید با DataGridView و SqlDataReader آشنایی داشته باشید. هدف این مقاله، آموزش روشی است برای جلوگیری از تکرار نوشتن کد دسترسی به دیتابیس است.
در ادامه، گام به گام با هم نوشتن کد را جلو می بریم:
گام اول:
فضای نام (Namespace)های زیر را وارد کنید.
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web;
گام دوم:
مانند کد زیر یک فضای نام و کلاسی در آن ایجا کنید.
namespace ConnectionNamespace { public class Connection_Query { //Here put all the methods which I am defining below... } }
گام سوم:
یک متغیر رشته ای برای ذخیره رشته اتصال (Connection string) و یک شیء SqlConnection ایجاد کنید.
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; }
گام هشتم:
و اما متد ShowDataInGridView را در این مرحله مرور خواهیم کرد. همانطور که پیش تر گفتم، باید آشنایی نسبی با DataGridView نیز داشته باشید تا طرز کار این متد را درک کنید.
این متد شی ای برمی گرداند که والد همه متغیرها در #C است. ما DataSource مربوط به GridView را با این متد و یک کوئری به عنوان آرگومان، مقداردهی می کنیم.
public object ShowDataInGridView(string Query_) { SqlDataAdapter dr = new SqlDataAdapter(Query_, ConnectionString); DataSet ds = new DataSet(); dr.Fill(ds); object dataum = ds.Tables[0]; return dataum; }
کد زیر، کد کامل مربوط به کلاس اتصال می باشد.
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; namespace Connection_Class { public class Connection_Query { string ConnectionString = ""; SqlConnection con; public void OpenConection() { con = new SqlConnection(ConnectionString); con.Open(); } public void CloseConnection() { con.Close(); } public void ExecuteQueries(string Query_) { SqlCommand cmd = new SqlCommand(Query_,con); cmd.ExecuteNonQuery(); } public SqlDataReader DataReader(string Query_) { SqlCommand cmd = new SqlCommand(Query_,con); SqlDataReader dr = cmd.ExecuteReader(); return dr; } public object ShowDataInGridView(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 OpenConection ()
برای باز کردن و ایجاد اتصال فراخوانی می شود.
void CloseConnection ()
برای بستن و پایان اتصال فراخوانی می شود.
void ExecuteQueries (string Query_)
برای اجرای توابع insert، update و delete فراخوانی می شود.
SqlDataReader DataReader (string Query_)
زمانی که بخواهیم داده ها را در TextBox یا Label نشان دهیم، این متد را فراخوانی می کنیم.
مستندات اعضای متد
1.void CloseConnection ()
این متد را برای خاتمه دادن به اتصال فراخوانی می کنیم.
2. SqlDataReader DataReader (string Query_)
زمانی که بخواهیم داده ها را در TextBoxو یا Lable نشان دهیم، این متد فراخوانی می شود.
کد زیر، نحوه استفاده از این متد را نشان می دهد.
SqlDataReader dr = ClassObject.DataReader("Select * From Student"); dr.Read(); textBox1.Text = dr["Stdnt_Name"].tostring();
پارامترها
Query_: کوئری را در این قسمت ارسال می کنیم.
returns: شی ای از نوع SqlDataReader برمی گرداند.
3. void ExecuteQueries (string Query_)
برای اجرای توابع insert، update و delete فراخوانی می شود.
پارامترها
Query_: کوئری های موردنیاز
4.void OpenConection ()
این متد جهت باز شدن و شروع اتصال فراخوانی می شود.
5.object ShowDataInGridView (string Query_)
این متد نیز برای نمایش داده ها در DataGridView فراخوانی می شود.
کد زیر، نحوه استفاده از این متد را نشان می دهد.
dataGridView1.datasource = ClassObject.ShowDataInGridView("Select * From Student")
پارامترها
Query_: کوئری های موردنظر را در این قسمت وارد کنید.
returns: شی ای با مقدار داده، برای نمایش در GridView برمی گرداند.
تذکر: این کد را با #C و ASP.Net استفاده نمایید.
- C#.net
- 6k بازدید
- 14 تشکر