متفاوت ترین مجله اینترنتی ...

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

12345 (بدون نظر)
Loading...
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. فرناز می‌گوید

    دربخش70 اشکالی داشتم که پرسیدم میشه راهنمایی کنین؟مرسی

  3. قاسمی می‌گوید

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

    1. SeyedMuhammad می‌گوید

      بخش ها موجود می باشند.

  4. abbas می‌گوید

    آیا آموزش ادامه داره

  5. maryam می‌گوید

    آموزشتون واقعا عالیه . بازم ادامه داره یا تمومه؟؟!!

  6. ساعد می‌گوید

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

  7. حمید می‌گوید

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

    1. نادر عظیمی می‌گوید

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

    2. حمید می‌گوید

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

  8. مهدی می‌گوید

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

  9. nasrin می‌گوید

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

  10. vahid می‌گوید

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

  11. علی اکبر می‌گوید

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

    با تشکر

  12. مهدی می‌گوید

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

  13. محمدرضا می‌گوید

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

  14. mohsen می‌گوید

    سلام ممنون از مطالب خوبتون بعضی از قسمت ها پی دی اف نداره باید چه کار کنم

  15. حمیداز اصفهان می‌گوید

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

  16. فاطمه می‌گوید

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

  17. ebrahim می‌گوید

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

    با تشکر

  18. masoud می‌گوید

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

    با تشکر

  19. mojtaba می‌گوید

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

  20. faxradin می‌گوید

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

  21. عباس می‌گوید

    سلام
    خیلی ممنون بابت زحماتی که کشیدین ، مطالب خیلی مفید و به زبان ساده بودن و این نقطه قوت این تاپیک هست
    فقط لینک قسمت ۴۳ تا ۴۸ خراب هست، لطفا لینکها رو اصلاح کنید و pdf ها رو نیز تکمیل کنید
    اگر امکان داره آموزش رو ادامه بدین و تاپیک رو مجددا فعال کنید

  22. مجید می‌گوید

    با سلام
    من تازه با سایت شما آشنا شده ام
    آموزش بسیار خوبی دارین
    حیفم اومد بابت وقتی که گذاشتین، تشکر نکنم

  23. فریبرز کاظمی می‌گوید

    سلام علیکم
    خسته نباشید مطالب ارزنده ومفیدی است
    از این همه پشتکار برای آموزش تشکر مینمایم
    موفقیت روز افزون شما آرزوی ماست
    با تشکر فراوان
    فریبرز کاظمی

  24. amirali می‌گوید

    سلام خسته نباشید ممنون از اموزش های خوب و روانتان میخواستم بدونم میشه یک اموزش برای ساخت فرم ورود و ثبت نام هم بزارید؟

  25. حسین می‌گوید

    سلام خیلی ممنون از سایت خوبتون . میخواستم ببینم آموزش ها ادامه داره یا خیر؟

  26. شعیب می‌گوید

    سلام من تازه به سیات شما آمده ام میشود از جلسه ۴۳ الی جلسه ۵۰ بریم یفرستید چون از ویب سایت حذف شده منون خوش میشم

  27. عارفه می‌گوید

    آقای موسوی جلسه ی ۴۳ تا ۴۸ لینک نداره

  28. عارفه می‌گوید

    بچه ها عبارت های جلسه ۴۳ تا ۴۹ رو مثل ” استفاده از List ” رو توی گوگل سرچ کنید صفحشون میاد

  29. امیر107 می‌گوید

    با سلام و خسته نباشید.
    اولا واقعا از زحمات شما ممنونم
    ثانیا” می شه خواهش کنم آموزش ها را ادامه بدین. خیلی مفید است.
    البته من آموزش مراحل نهایی پروژه یعنی ساخت یک setup کامل و جامع مد نظرم است.
    در ۲۰۱۲ به بعد

  30. امیر107 می‌گوید

    تو رو خدا آموزش ها را ادامه دهید

    در ضمن بعضی بخش ها هم مثل ۴۳ تا ۴۸ لینک ندارند و باز نمی شوند.

    لطفا” …

  31. باران می‌گوید

    سلام ممنون از سایت خوبتون واقعا خیلی مفید است فقط چرا قسمت های ۴۳ تا ۴۸ لینک نداره تا باز بشه؟ و یک سوال آیا امکان داره فایل pdf آموزش ها رو تا جایی که هست رو بصورت کامل بذارید یعنی جدا جدا نباشه هر قسمت. ممنون میشم

  32. باران می‌گوید

    سلام قسمت های ۴۳ تا ۴۸ آموزش رو میشه از طریق گزینه آموزش ویژال استودیو که در قسمت پایین هر بخش است پیدا و باز کرد ولی قسمت ۴۵ اصلا وجود ندارد لطفا راهنمایی کنید و pdf جامع کل آموزش رو بذارید ممنون از زحمتات شما

  33. مهرداد می‌گوید

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

  34. آرش می‌گوید

    لینک قسمت های ۴۳ تا ۴۸ مشکل دارد و نمیتوان به آموزش ها دسترسی داشت

  35. ahmad می‌گوید

    عرض سلام و خسته نباشید.
    آقا وجدانن این مشکل ما رو حل کن!
    من یه فرم رو به عنوان والد تعریف کردم . حالا شکلش ۳d شده . میخوام مثل همون حالت عادی اش باشه بدون افکت .
    ممنون میشم راهنمایی کنین.

  36. mohammad می‌گوید

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

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

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