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

در آموزش قبلی اندکی با معماری کلی ADO.NET آشنا شدید. البته ما از شما انتظار نداریم بدون استفاده عملی از آن و درک کاربردهایش، بتوانید با این معماری ارتباط مناسبی برقرار کنید. در این آموزش به قدم اول از استفاده کاربردی از ADO.NET می پردازیم و آن ایجاد یک اتصال به پایگاه داده اس کیو ال سرور می باشد.

پروژه دفتر تلفن را باز کنید. وارد فرم FrmAddContact شوید. بر روی دکمه "تست" (btnTest) دوبار کلیک کنید تا وارد محیط کدنویسی برای رویداد کلیک این دکمه شوید. اگر قبلا کدی را در آن قسمت نوشته اید، پاکش کنید. در واقع تنها کد باقیمانده همان کد بدنه رویداد کلیک این دکمه باید باشد که به شکل زیر می باشد :

خوب حالا ما میخواهیم در این قسمت کدی بنویسیم که اتصالی را با نرم افزار اس کیو ال سرور برقرار کند. دیتابیسی که در این آموزش از آن استفاده خواهیم کرد همان دیتابیس PhoneBookDB می باشد که در دوره آموزشی پایگاه داده آنرا ایجاد کردیم.
خوب حالا کد مربوط به اتصال به پایگاه داده را می نویسیم. شما عینا همین کد را رونویسی کنید، در ادامه در مورد این کد توضیحات مفصلی ارائه خواهیم کرد.
در خط اول کد که در تصویر زیر نیز آنرا مشاهده می کنید ما یک نمونه جدید از شیء SqlConnection را ایجاد کرده ایم. اگر دقت کنید شیء SqlConnection را بصورت System.Data.SqlClient.SqlConnection نوشته ایم، در آموزشهای آینده با شیوه خلاصه نویسی این نوع کدها آشنا خواهیم شد، اما فعلا می خواهیم درک کاملی از این شیء داشته باشید، برای همین نام کامل آن را نوشته ایم. دستور Dim برای ایجاد نمونه از اشیاء برنامه نویسی کاربرد دارد. cn یک نام می باشد که توسط ما برای این نمونه انتخاب شده است و می توانست هر نام دیگری نیز باشد. کلمه کلیدی As نیز بخشی از دستور ایجاد نمونه می باشد، در واقع ساختار کلی دستور Dim به این شکل است که ابتدا کلمه کلیدی Dim نوشته می شود، سپس نام نمونه ما و سپس کلمه کلیدی As و سپس نام شیء اصلی که می خواهیم از آن نمونه گیری کنیم آورده می شود. کلمه کلیدی New یعنی نمونه جدید از این شیء ایجاد و بارگذاری شود.
در واقع شما در آموزشهای قبلی نیز با اشیاء برنامه نویسی کار کرده اید، کنترل های Label و TextBox و ... که در طول آموزشهای قبلی از آنها استفاده کردید هر کدامشان یک شیء برنامه نویسی بودند. تفاوت آنها با شیء SqlConnection که در اینجا از آن استفاده کردیم در اینست که آنجا شما با کشیدن و رها کردن ماوس بر روی کنترل ها آنها را ایجاد می کردید، اما اینجا مستقیما در کد ما این شیء را ایجاد کردیم.
بد نیست بدانید در آنجا هم دقیقا مشابه همین کد لازم است، اما وقتی شما با ماوس کنترلی را از ToolBox بر روی فرمتان می کشید، خود ویژوال استودیو در پشت صحنه آن کد را تولید می کند.
حالا به خط کد بعدی دقت کنید :
آنجا که نوشته ایم cn.ConnectionString عین این می ماند که در آموزشهای پیشین نوشته بودیم TextBox1.Text .
اگر خاطرتان باشد گفتیم که هر کنترل یکسری ویژگی دارد که از داخل پنجره Properties و یا مستقیما از داخل کد می توانیم مقدار آن ویژگی را دستکاری کنیم. اینجا هم قضیه عینا همان است. در واقع ConnectionString یکی از ویژگیهای cn می باشد. ویژگی ConnectionString مقدار رشته اتصال به پایگاه داده را در خود نگه می دارد. رشته اتصال خودش شامل یکسری پارامتر است که برای برقراری ارتباط با پایگاه داده به آنها نیاز داریم. به تصویر زیر که در آموزشهای پایگاه داده نیز مشابه آن را دیده بودید مجددا یک نگاهی بیندازید.
همانطور که در تصویر هم می بینید، هر وقت که می خواهیم وارد اس کیو ال سرور شویم، این صفحه باز می شد و اطلاعات ورود را از ما درخواست می کرد. رشته اتصال دقیقا همین صفحه است، بعلاوه اینکه در رشته اتصال ما یکسری پارامتر اضافه دیگر هم می خواهیم. مثلا پارامتر نام دیتابیس. در ادامه نگاه دقیقتری به پارامترهای رشته اتصال می اندازیم :
Open نام یک روال برنامه نویسی است که از قبل نوشته شده است و در شیء SqlConnection قرار داده شده است. خود همین Open ممکن است کدهای زیادی داخلش باشد، دقیقا مشابه روال اعتبار سنجی که در آموزشهای اولیه با هم نوشتیم می باشد. ما دیگر نگران این نیستیم که چه کدهایی داخل آن وجود دارد و اساسا نمی توانیم هم آنها را ببینیم و یا تغییر بدهیم. ما فقط اینقدری که لازم است بدانیم اینست که مایکروسافت به ما گفته است اگر روال Open را فراخوانی کنیم و البته قبل از آن رشته اتصال (ConnectionString) را درست تنظیم کرده باشیم، اتصال با دیتابیس برقرار می شود، به همین سادگی.
یعنی ما صرفا با سه خط کد توانستیم با دیتابیس ارتباط برقرار کنیم. در خط کد اول یک نمونه از شیء SqlConnection ایجاد کردیم، در خط کد دوم مقدار ویژگی ConnectionString را تنظیم کردیم و در خط کد سوم روال Open را صدا زدیم (فراخوانی کردیم).
الان اتصال برقرار شده است و دیتابیس باز شده است. یک خط کد بعد از آن صرفا برای تست است. یعنی ما می خواهیم بررسی کنیم و ببینیم که آیا واقعا اتصال برقرار شده است یا نه؟
دستور MsgBox را در آموزشهای قبلی دیدیم و شناختیم و بارها هم از آن استفاده کردیم. کار این دستور نمایش پیغام است. آن چیزی که در اینجا برای ما تازگی دارد کد cn.State.ToString می باشد. State یکی دیگر از ویژگیهای cn می باشد. کار آن اینست که وضعیت باز یا بسته بودن cn را به ما نشان بدهد. ما هم با استفاده از آن این وضعیت را برای کاربر نمایش می دهیم.
کلمه کلیدی & دو متن را به هم متصل می کند. در اینجا ما یک متن ثابت نوشته ایم و یک قسمت متغیر هم داریم که از ویژگی های cn آن را خوانده ایم.
Close هم مثل Open از همان روال های آماده است که قبلا در شیء SqlConnection نوشته شده است. کارش هم اینست که اتصال را می بندد.
فراخوانی مجدد و تکراری کد مربوط به نمایش وضعیت cn به این دلیل است که تست کنیم و ببینم آیا واقعا اتصال ما بسته شده است یا نه.
خوب، حالا می خواهیم کدهای بالا را تست کنیم. برنامه را اجرا کنید. و بر روی دکمه "تست" کلیک کنید.
همانطور که می بینید برنامه بدرستی کار کرد، و نمایش پیغام Open به ما نشان می دهد که وضعیت اتصال در حال حاضر باز است. اگر پیغام را Ok کنید. پیغام دوم نمایش داده می شود.
پیغام دوم هم طبق پیش بینی ما بود. یعنی بعد از اینکه اتصال را بستیم طبیعتا پیغام وضعیت Closed را به ما نشان می دهد که به معنای بسته بودن اتصال است.
آموزش قبلی : 19. آموزش برنامه نویسی به زبان ساده . برقراری ارتباط با پایگاه داده (آشنایی با ADO.NET)
آموزش بعدی : 21. آموزش برنامه نویسی به زبان ساده . طراحی فرم مدیریت تماسها در برنامه دفتر تلفن

اگر آموزشهای قبلی را ندیده اید، به مطالعه این آموزش نپردازید، در واقع این آموزش یک مجموعه سریالی است که مطالب آن بصورت تنگاتنگ در ارتباط با یکدیگر می باشند. برای شروع این دوره آموزشی بر روی لینک آغاز دوره آموزشی کلیک کنید.
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
روش ایجاد اتصال به پایگاه داده با شیء (Connection)
پروژه دفتر تلفن را باز کنید. وارد فرم FrmAddContact شوید. بر روی دکمه "تست" (btnTest) دوبار کلیک کنید تا وارد محیط کدنویسی برای رویداد کلیک این دکمه شوید. اگر قبلا کدی را در آن قسمت نوشته اید، پاکش کنید. در واقع تنها کد باقیمانده همان کد بدنه رویداد کلیک این دکمه باید باشد که به شکل زیر می باشد :

خوب حالا ما میخواهیم در این قسمت کدی بنویسیم که اتصالی را با نرم افزار اس کیو ال سرور برقرار کند. دیتابیسی که در این آموزش از آن استفاده خواهیم کرد همان دیتابیس PhoneBookDB می باشد که در دوره آموزشی پایگاه داده آنرا ایجاد کردیم.
اگر احیانا دیتابیس PhoneBookDB را ندارید، یا سهوا آن را حذف کرده اید، نگران نباشید، ما یک نسخه بک آپ از آن را برای دانلود در لینک زیر قرار داده ایم. ابتدا آن را دانلود نمایید و سپس مشابه آموزش بازیابی بک آپها در اس کیو ال سرور آن را بازیابی نمایید.
دانلود فایل بک آپ دیتابیس PhoneBookDB
آموزش نحوه بازیابی نسخه پشتیبان (Restore) در SQL Server
دانلود فایل بک آپ دیتابیس PhoneBookDB
آموزش نحوه بازیابی نسخه پشتیبان (Restore) در SQL Server
خوب حالا کد مربوط به اتصال به پایگاه داده را می نویسیم. شما عینا همین کد را رونویسی کنید، در ادامه در مورد این کد توضیحات مفصلی ارائه خواهیم کرد.

توضیحات مربوط به کد ایجاد اتصال به پایگاه داده
در خط اول کد که در تصویر زیر نیز آنرا مشاهده می کنید ما یک نمونه جدید از شیء SqlConnection را ایجاد کرده ایم. اگر دقت کنید شیء SqlConnection را بصورت System.Data.SqlClient.SqlConnection نوشته ایم، در آموزشهای آینده با شیوه خلاصه نویسی این نوع کدها آشنا خواهیم شد، اما فعلا می خواهیم درک کاملی از این شیء داشته باشید، برای همین نام کامل آن را نوشته ایم. دستور Dim برای ایجاد نمونه از اشیاء برنامه نویسی کاربرد دارد. cn یک نام می باشد که توسط ما برای این نمونه انتخاب شده است و می توانست هر نام دیگری نیز باشد. کلمه کلیدی As نیز بخشی از دستور ایجاد نمونه می باشد، در واقع ساختار کلی دستور Dim به این شکل است که ابتدا کلمه کلیدی Dim نوشته می شود، سپس نام نمونه ما و سپس کلمه کلیدی As و سپس نام شیء اصلی که می خواهیم از آن نمونه گیری کنیم آورده می شود. کلمه کلیدی New یعنی نمونه جدید از این شیء ایجاد و بارگذاری شود.

در یک خط کد بالا شما بدون اینکه با مفهوم برنامه نویسی شیء گرا (Object Oriented) آشنا شده باشید، به این شیوه برنامه نویسی کرده اید، در واقع ما ابتدا بصورت کاربردی شما را با شیوه برنامه نویسی شیء گرا آشنا می کنیم و سپس در آموزشهای بعدی که به موضوع برنامه نویسی شیء گرا پرداختیم درک شما از آن راحتتر خواهد بود، چون ابتدا عملی آن را بکار برده اید و حالا می خواهید با تئوری مساله آشنا شوید. فعلا دانستیم که یک چیزی بنام شیء (Object) در برنامه نویسی داریم که برای استفاده از آن باید با دستورDim که به شکل بالا نوشته می شود یک نمونه جدید از آن ایجاد کنیم تا بتوانیم از امکانات آن شیء در برنامه هایمان استفاده کنیم.
در واقع شما در آموزشهای قبلی نیز با اشیاء برنامه نویسی کار کرده اید، کنترل های Label و TextBox و ... که در طول آموزشهای قبلی از آنها استفاده کردید هر کدامشان یک شیء برنامه نویسی بودند. تفاوت آنها با شیء SqlConnection که در اینجا از آن استفاده کردیم در اینست که آنجا شما با کشیدن و رها کردن ماوس بر روی کنترل ها آنها را ایجاد می کردید، اما اینجا مستقیما در کد ما این شیء را ایجاد کردیم.
بد نیست بدانید در آنجا هم دقیقا مشابه همین کد لازم است، اما وقتی شما با ماوس کنترلی را از ToolBox بر روی فرمتان می کشید، خود ویژوال استودیو در پشت صحنه آن کد را تولید می کند.
حالا به خط کد بعدی دقت کنید :

آنجا که نوشته ایم cn.ConnectionString عین این می ماند که در آموزشهای پیشین نوشته بودیم TextBox1.Text .
اگر خاطرتان باشد گفتیم که هر کنترل یکسری ویژگی دارد که از داخل پنجره Properties و یا مستقیما از داخل کد می توانیم مقدار آن ویژگی را دستکاری کنیم. اینجا هم قضیه عینا همان است. در واقع ConnectionString یکی از ویژگیهای cn می باشد. ویژگی ConnectionString مقدار رشته اتصال به پایگاه داده را در خود نگه می دارد. رشته اتصال خودش شامل یکسری پارامتر است که برای برقراری ارتباط با پایگاه داده به آنها نیاز داریم. به تصویر زیر که در آموزشهای پایگاه داده نیز مشابه آن را دیده بودید مجددا یک نگاهی بیندازید.

همانطور که در تصویر هم می بینید، هر وقت که می خواهیم وارد اس کیو ال سرور شویم، این صفحه باز می شد و اطلاعات ورود را از ما درخواست می کرد. رشته اتصال دقیقا همین صفحه است، بعلاوه اینکه در رشته اتصال ما یکسری پارامتر اضافه دیگر هم می خواهیم. مثلا پارامتر نام دیتابیس. در ادامه نگاه دقیقتری به پارامترهای رشته اتصال می اندازیم :
در صورتیکه آموزشهای آن قسمت را فراموش کرده باشید لینک زیر را مجددا یک مرور بفرمایید :
آموزش ورود به محیط اس کیو ال سرور
آموزش ورود به محیط اس کیو ال سرور
-
Data Source : منبع داده (Data Source) دقیقا همان نام سروری است که در صفحه ورود به اس کیو ال سرور وارد می کنید. در کامپیوتر بنده نام سرور RAHKARSOFT\SQL2012 می باشد، در کامپیوتر شما ممکن است نام دیگری داشته باشد، در اینصورت نام اختصاصی خودتان را جایگرین این قسمت نمایید.
-
Initial Catalog : نام دیتابیس شما می باشد. اگر دقت کنید نام PhoneBookDB را در برابر این پارامتر قرار داده ایم.
-
سایر پارمترها را هم به شکلی که در رشته اتصال می بینید عینا در کد خود بنویسید و تغییرشان ندهید. در واقع رشته اتصال خودش می تواند حالتهای مختلف دیگری هم داشته باشد، ما در اینجا ساده ترین و خلاصه ترین حالت ممکن را انتخاب کرده ایم.

Open نام یک روال برنامه نویسی است که از قبل نوشته شده است و در شیء SqlConnection قرار داده شده است. خود همین Open ممکن است کدهای زیادی داخلش باشد، دقیقا مشابه روال اعتبار سنجی که در آموزشهای اولیه با هم نوشتیم می باشد. ما دیگر نگران این نیستیم که چه کدهایی داخل آن وجود دارد و اساسا نمی توانیم هم آنها را ببینیم و یا تغییر بدهیم. ما فقط اینقدری که لازم است بدانیم اینست که مایکروسافت به ما گفته است اگر روال Open را فراخوانی کنیم و البته قبل از آن رشته اتصال (ConnectionString) را درست تنظیم کرده باشیم، اتصال با دیتابیس برقرار می شود، به همین سادگی.
یعنی ما صرفا با سه خط کد توانستیم با دیتابیس ارتباط برقرار کنیم. در خط کد اول یک نمونه از شیء SqlConnection ایجاد کردیم، در خط کد دوم مقدار ویژگی ConnectionString را تنظیم کردیم و در خط کد سوم روال Open را صدا زدیم (فراخوانی کردیم).
الان اتصال برقرار شده است و دیتابیس باز شده است. یک خط کد بعد از آن صرفا برای تست است. یعنی ما می خواهیم بررسی کنیم و ببینیم که آیا واقعا اتصال برقرار شده است یا نه؟

دستور MsgBox را در آموزشهای قبلی دیدیم و شناختیم و بارها هم از آن استفاده کردیم. کار این دستور نمایش پیغام است. آن چیزی که در اینجا برای ما تازگی دارد کد cn.State.ToString می باشد. State یکی دیگر از ویژگیهای cn می باشد. کار آن اینست که وضعیت باز یا بسته بودن cn را به ما نشان بدهد. ما هم با استفاده از آن این وضعیت را برای کاربر نمایش می دهیم.
کلمه کلیدی & دو متن را به هم متصل می کند. در اینجا ما یک متن ثابت نوشته ایم و یک قسمت متغیر هم داریم که از ویژگی های cn آن را خوانده ایم.

Close هم مثل Open از همان روال های آماده است که قبلا در شیء SqlConnection نوشته شده است. کارش هم اینست که اتصال را می بندد.

فراخوانی مجدد و تکراری کد مربوط به نمایش وضعیت cn به این دلیل است که تست کنیم و ببینم آیا واقعا اتصال ما بسته شده است یا نه.
برنامه را اجرا کنید
خوب، حالا می خواهیم کدهای بالا را تست کنیم. برنامه را اجرا کنید. و بر روی دکمه "تست" کلیک کنید.

همانطور که می بینید برنامه بدرستی کار کرد، و نمایش پیغام Open به ما نشان می دهد که وضعیت اتصال در حال حاضر باز است. اگر پیغام را Ok کنید. پیغام دوم نمایش داده می شود.

پیغام دوم هم طبق پیش بینی ما بود. یعنی بعد از اینکه اتصال را بستیم طبیعتا پیغام وضعیت Closed را به ما نشان می دهد که به معنای بسته بودن اتصال است.
آموزش قبلی : 19. آموزش برنامه نویسی به زبان ساده . برقراری ارتباط با پایگاه داده (آشنایی با ADO.NET)
آموزش بعدی : 21. آموزش برنامه نویسی به زبان ساده . طراحی فرم مدیریت تماسها در برنامه دفتر تلفن
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: