آموزش سی‌شارپ – بخش ۷۳

آموزش سی‌شارپ – بخش ۷۳
  • 1393/6/6
  • Jeff Mosawy
  • 39

مقدمه

در بخش ۷۲ نیز همانند بخش‌های پیشین در رابطه با دیتابیس و اضافه کردن آن به پروژه صحبت شد. در این بخش نیز قصد داریم به ادامه مبحث دیتابیس بپردازیم.

ارتباط دیتابیس با پروژه

برای برقرار ارتباط با دیتابیس، ما کلاسی را برای آن در نظر گرفته‌ایم تا همه ارتباطات را به‌دست گیرد. برای اینکار، ابتدا از منوی Project، گزینه Add Class را انتخاب می‌کنیم.

project_add_class

پنجره زیر برای شما نمایان می‌شود…

project_add_class2_new

ابتدا از اینکه گزینه Class انتخاب شده باشد اطمینان حاصل فرمایید. پس از آن، در باکس Name، اسم کلاس را DatabaseConnection.cs را قرار دهید. روی Add در نهایت کلیک کنید.

پس از آنکه Add را انتخاب کردید، کلاس جدید در Solution Explorer نمایان خواهد شد.

sol_explorer_class

کلاس را باز کرده تا محتوای آن را ببینید

class_code

(کاربران نسخه ۲۰۱۰ از ویژوال استودیو، عبارت Threading.Task را نخواهند دید.)

کلاسی که ساخته‌ایم، همانطور که از نامش پیداست، قرار است در ارتباط با دیتابیس ما را کمک کند. ما به آن متدها، متغیرها و propertyهایی را اضافه می‌کنیم تا بوسیله آن‌ها، این ارتباط صورت بگیرد.

اولین کاری که می‌بایست انجام دهیم ساخت دو متغیر است.

private string sql_string;

private string strCon;

همانند شکل زیر در کدهایتان قرار دهید

class_code2

متغیر sql_string، دستورات SQL را در خود نگهداری خواهد کرد. مثل:‌ SELECT * FROM table

ما این دستورات را از طریق Settings که در بخش قبل توضیح دادیم دریافت خواهیم کرد. متغیر strCon نیز محل دیتابیس را در خود نگهداری می‌کند که مجدد از Settings جلسه قبل آن را پیدا می‌کنیم.

کد بعدی‌ای که می‌بایست اضافه کنیم، یک property که فقط قابلیت نوشتن را داشته باشد. (یعنی get در آن تعریف نشده است.)

public string Sql {

set { sql_string = value;}

}

ما این Property را Sql می‌نامیم و از جنس رشته خواهد بود. value آن نیز همانطور که در کد مشخص است، در متغیر sql_string ذخیره خواهد شد.

property بعدی نیز connection_string خواهد بود که در مقدار value در متغیر strCon ذخیره خواهد شد. پس کدهای شما می‌بایست همه به‌شکل زیر باشند:

class_code3

در قدم بعدی، ما به شیءای به نام Dataset نیاز داریم. Dataset اطلاعات دیتابیس را در خود نگهداری می‌کند. هر سطر در Dataset، سطری از Database را در خود نگهداری خواهد کرد. پس از اینکه عملیات انتقال انجام شد، ارتباط با دیتابیس قطع می‌شود.

کد زیر را به کلاس اضافه کنید:

public System.Data.DataSet GetConnection

{

get { return MyDataSet();}

}

ما این Property را GetConnection می‌نامیم که بصورت Read-Only است. (یعنی تنها قابل خواندن است.)

در این Property ما متد MyDataSet را فرا می‌خوانیم؛ کار این متد ارتباط با دیتابیس و پر کردن DataSet از اطلاعات است. پس کد زیر را نیز بنویسید:

private System.DataSet MyDataSet()

{

}

اگر به متد فوق توجه کنید، به جای اینکه این متد از جنس String یا int باشد‌، از جنس System.DataSet است.

در قدم اول، کد زیر را داخل این متد اضافه کنید:

System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strCon);

متغیری که در کد بالا ساختیم نام آن con است. جنس این متغیر از SqlClient.SqlConnection است. ما یک شیء از این نوع می‌سازیم و متغیر strCon را در سازنده این شیء به SqlClient.SqlConnection پاس می‌دهیم.

کد بعدی، کد زیر است:

con.Open();

این کد ارتباط را به دیتابیس باز می‌کند. در واقع، جداول هنوز باز نشده‌اند، لذا برای اینکار ما نیاز به یک DataAdapter خواهیم داشت. DataAdapter به این دلیل استفاده می‌شوند تا جداول را در دیتابیس برای ما باز کند. پس از آن، ما باید این DataAdapter را در refrenceها پروژه قرار دهیم.

پس ما زیر دو متغیر قبل که تعریف کرده‌ایم، متغیر زیر را قرار می‌دهیم:

System.Data.SqlClient.SqlDataAdapter da_1;

به متد MyDataSet برگردید و کد زیر را بنویسید:

da_1 = new System.Data.SqlClient.SqlDataAdapter(sql_string, con);

در آرگومان‌های این متد می‌گوییم که ما کدام جدول را برای باز شدن می‌خواهیم.

خط بعدی مورد نیاز،‌ خط کد زیر است:

System.Data.DataSet dat_set = new System.Data.DataSet();

خط فوق یک شیء از DataSet ایجاد می‌کند که نام آن را dat_set قرار داده‌ایم. کل متد این DataSet را برخواهد گرداند.

و ۳ خط آخر مورد نیاز، کدهای زیر هستند:

da_1.Fill(dat_set, “Table_Data_1”);

con.Close( );

return dat_set;

خط ابتدا با استفاده از متد Fill، اقدام به پر کردن DataSet می‌کند. خط بعدی، ارتباط با دیتابیس را قطع می‌کند و خط پس از آن، مقدار dat_set را برمی‌گرداند.

کدهای شما سرجمع باید همه بصورت زیر شده باشد

class_code_all2

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 39 دیدگاه
  1. سلام
    یه سوالی از بخش 68 داشتم که در همون بخش پرسیدم.میشه جواب بدین؟
    ممنون

  2. سلام من تازه باسایت شما آشنا شدم خیلی سایت مفید وجذابیه از آقای موسوی بابت این سایت خوب تشکر میکنم.من چندوقتیه که دنبال آموزش فارسی#cمیگشتم که متاسفانه دیر سایت شما را پیدا کردم اگه کسی میتونه ازجلسه ی اول تا49 این آموزشا برام ایمیل کنه ازش ممنون میشم چون خیلی احتیاج دارم متاسفانه فقط از جلسه 50توی سایت موجوده جلسه های قبلی حذف شده.بازم ممنون
    GHASEMI.MB110@GMAIL.COM

  3. سلام
    آقاسید واقعا من تا کنون آموزشی با این کیفیت و با زبانی ساده و روان ندیده بود خداوند به شما و خانواده ات توفیق بدهد و در تمام مراحل زندگی موفق و پیروز باشید.

  4. سلام
    خداقوت
    من به تازگی با سایت خوبتون آشنا شدم و به لطف شما خیلی ازش استفاده کردم،فقط دو عرض داشتم:
    اول اینکه آموزشها به ترتیب نیست به عنوان مثال جلسه 59،61،62،64 و 69 رو پیدا نکردم و دوم اینکه در صورت امکان فایل تمامی آموزشها رو به صورت پی دی اف هم بذارید.
    بابت زحماتتون ممنون.

    1. سلام
      تمامی بخش ها در سایت موجود است از بخش بالایی صفحه اول سایت برید روی سی شارپ کلیک کنید تمامی مقالات اونجا به ترتیب هست

    2. باز هم ممنونم از لطف و توجهتون.
      فایلهارو پیدا کردم
      در مورد پی دی اف؟؟؟

  5. سلام
    خیلی عالیه کارتون
    واقعا سنگ تموم گذاشتین
    فقط مطالب اخرتونو پی دی اف نکردید
    اگه میشه پی دی اف بزارید
    بازم ممنون

  6. سلام من یه ساعت بیشتر نیس با سایتتون آشنا شدم خیلی به دردم خورد عالیه فقط قسمتهای قبلی رو حتما میخوام ادامه داره؟؟؟؟چه زمانهای رو سایت میذارین خیلی خیلی نیاز دارم
    ممنون

  7. باسلام و با تشکر از زحماتتان.سایت خوبی دارید.
    از جلسه ۴۳ تا ۴۸ لینک نداره.لطفا مشکلش رو برطرف کنید.ممنون

  8. با سلام و تشکر فراوان از زحمات بسیار خوب دوستان که این آموزش را قرار داده اند .
    انشالله که در تمام مراحل موفق و پیروز و سر بلند باشید .
    واقعاً آموزش جامع و کاملی بود ، نهایت استفاده را بردیم . انشالله باز هم از این قبیل آموزش ها قرار بدید تا بتوانیم از آنها استفاده نماییم .

    با تشکر

  9. با سلام
    با آموزش شما تازه آشنا شدم . فوق العاده بود .
    خواهشمند است درصورت امکان آموزش را با قرار دادن فایل های پی دی اف ادامه دهید .
    از زحمات شما بسیار ممنونم.

  10. اموزشتون واقعا عالی بود من خیلی دنبال همچین اموزشی میگشتم که متاسفانه یه خورده دیر سایت شمارو پیدا کردم خداخیرتون بده اگه میشه ادامه بدین

  11. سلام و تشکر و عرض خسته نباشید;
    من دانشجوی ترم ۵ رشته برنامه نویسی کامپیوتر هستم و جدیدا با سایت شما آشنا شده ام و خوشحالم که به این ظریفی به نکته های کوچک دقت شده است. تازه فهمیدم برنامه نویسی یعنی چه .خودتونم میدونید تو دانشگاه کلی گویی بیشتر میشه.من تا جلسه ۴۲ رو دانلود کردم و لی از جلسه ۴۳ به بعد به مشکل خوردم. چون PDF های آموزشی رو داخل گوشی قرار میدم بیزحمت فایل های PDF از جلسه ۴۳ به بعدرو قرار بدید.جلسه های ۴۳ تا ۴۸ غیر فعال هستو errorمیده.چرا از جلسه ۴۹ به بعد فایل PDF جهت دانلود وجود ندارد.زحمت بکشید فایل های PDF را نیز قرار دهید.شرمنده از زیاده گوییهام.بازم تشکر میکنم به خاطر آموزش عالیتون.

  12. سلام
    خیلی خیلی ممنون از مطالب عالیتون، فقط اگر امکان داشت بعد از هر جلسه یا مثلا بعد از تموم شدن یه موضوع تمرین هم بدید که حل کنیم دیگه حرف نداشت.

  13. سلام
    باتشکر از آموزش برنامه نویسی C#.واقعا خیلی عالیه
    فقط قسمت های ۴۳ تا ۴۸ رو سایت قرار نگرفته .یه لطفی کنین رو سایت قرار بدین

    با تشکر

  14. سلام
    باتشکر از آموزش برنامه نویسی C#.واقعا خیلی عالیه
    فقط قسمت های ۴۳ تا ۴۸ رو سایت قرار نگرفته .یه لطفی کنین رو سایت قرار بدین چون واقعا نمیشه نصفه نیمه بریم قسمت دیگه

    با تشکر

  15. با سلام و احترام.میتونم علت اینکه لینک جلسات ۴۳ تا ۴۸ غیر فعال میباشد رو بپرسم ازتون؟.

  16. با تشکر از مطالب مفیدتون
    لطفا به نظر بیش از ۳۰ بیننده این سایت احترام بگذارید
    ۱ – آموزش های بخش ۴۳ تا ۴۸ غیر فعال هستند اصلا به صفحه آموزش لینک نمی شی؟
    ۲ – PDF مطالب بسیار کامل و مفید بودند پرا دیگه قرار نمیدید؟
    ۳ – مجموع PDF از اول تا انتها رو هم برای دانلود بگذارید تا مرجع جامع و کاملی برای ما بشه؟
    …….
    لطفا لطفا ……. کافیه یا باز هم درخواست کنیم

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *