دوره مجازی #C (جلسه 23): ارتباط با پایگاه داده

- visibility ۱۴ mode_comment

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

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • معرفی مفهوم برنامه نویسی سه لایه و در کل چند لایه
  • معرفی و شرح کاربرد لایه های سه گانه Data Layer, Business Layer, Presentation Layer
  • آشنایی با کلاس SqlConnection و نحوه ی اتصال به پایگاه داده از طریق نرم افزار های طراحی شده در سی شارپ
  • آشنایی با Connection String و انواع آن
  • معرفی کلاس SqlCommand به منظور اجرای کوئری ها و پرس و جو های مختلف
  • آشنایی با انواع اجرای کوئری ها در کلاس SqlCommand
  • اجرای کوئری هایی که مقادیر Scalar برمی گردانند
  • آشنایی با کلاس SqlDataReader به منظور خواندن نتیجه ی کوئری هایی که جدول برمی گردانند
  • نحوه ی اجرای Procedure های از پیش نوشته شده در Sql Server توسط کلاس SqlCommand
  • آشنایی با نحوه ی اجرای Function های از پیش تعریف شده در Sql Server توسط کلاس SqlCommand

در جلسه ی آینده به طور عملی با برنامه نویسی چند لایه آشنا خواهیم شد و همچنین مفاهیم اولیه ی Entity Framework را نیز مطرح خواهیم کرد.

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

info توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

comment دیدگاه کاربران

سلام اقای زارعی لطفا در این فصل ی ذره به .NET بپردازید فقط در حد مبتدی!

آرین زارعی

سلام. اگر خاطرتون باشه ما در مورد دات نت صحبت کردیم … در واقع ابزارهایی رو که در فصل 2 و 4 و 5 استفاده می کنیم همگی از امکانات دات نت هستند.

Aria Banazadeh

سلا شما در این جلسه به موضوع execute scalar پرداخته اید اگه نپرداخته اید لطفا دوررو اپدیت کنید و این موضوعو اضافه کنید

آرین زارعی

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

pardis karimi

salam .khaste nabashid. ye soale kochik daram az khedmateton.:)
chera az class sqlDataReader instance new nemikonim mesle class sqlComman??

آرین زارعی

سلام. ممنون
ببینید در این کاربرد خاص متد command.executeReader(); برای ما یک نمونه رو میسازه آماده و نیازی به نمونه سازی نیست.

پژمان

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

آرین زارعی

سلام.
به طور مستقیم ربطی نداره. ولی میتونید به صورت منطقی ارتباطی بینشون ببینید. این طور که هر sqlcommand در خود sql engine به صورت Dqe اجرا میشه. البته اینکه واقعیت در پشت صحنه چی هست رو من اطلاع دقیقی ندارم.

پژمان

در خط فرمان زیر:
Connection.State == System.Data.ConnectionState.Open
یعنی سولوشن System نیم اسپیس Data کلاس ConnectionState پراپرتی Open باید برابر باشه با پراپرتی State آبجکت Connection
برداشتم صحیحه!؟

اگر اینطور هست نمیشه که ابتدا در بالای پنجره کلاس پروگرام System.Data رو using یا import کنیم بعدش از کلاس ConnectionState به تنهایی استفاده کنیم.

ممنون

آرین زارعی

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

پژمان

ببخشید سئوالات رو در پستهای جدا مینویسم میخوام که وضوح سئوالات بره بالا تا برای دیگران گنگ نباشه.

آیا متد داینامیک ExecuteNonQuery() کار دکمه execute رو در محیط SqlServer انجام میده؟ ممنون

آرین زارعی

نه لزوما. این متد های Execute هر کدوم مقدار بازگشتی خودشون رو دارن. ولی در Sql چند نوع متد اجرا نداریم. خیلی جالب نیست اینطوری قیاس انجام بدید.

پژمان

مطلبی که به نظرم مبهم هستش تفکیک لایه های معماری درون کدها هستش. البته شاید این سئوال کمی زود باشه ولی اگر تلویحی توضیح بفرمایید ممنون میشم. مثلا شما برای ارتباط با دیتابیس دو تا آبجکت به نامهای Connection و Command استفاده فرمودید که احیانا اگر بخوایم از این آبجکتها درون مثلا برنامه phonebook فصل دوم استفاده کنیم و اطلاعات person رو اونجا و بجای serialization درون بانک اطلاعاتی استفاده کنیم تفکیک لایه ها برای مدیریت بهتر develope و درون کلاسهای کد نویسی شده چگونه انجام میشه؟ (البته گمان میکنم دیگه با وجود بانک اطلاعاتی دیگه قضیه لیستهای جنریک و Add کردن اطلاعات درون کلاس NoteBook دیگه منتفی هست) . کاش این آموزش رو همزمان با تدریس شما شروع میکردم. خییییلی بهتر بود. بازم ممنون

پژمان

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.