مقدمه آموزش اتصال Sql Server به C#
در تمامی پروژهها و برنامههای مربوط به نرم افزار و سایتها باید محلی برای ذخیره اطلاعات وجود داشته باشد. روز به روز بر حجم این اطلاعات و اهمیت آنها افزوده میشود و همین امر استفاده از پایگاه داده را به مهمترین بخش برنامه نویسی در هر زبان برنامه نویسی تبدیل کرده است.
C# به عنوان یک زبان برنامه نویسی محبوب و SQL به عنوان یک پایگاه داده قدرتمند در حوزه برنامه نویسی به شمار میروند و نحوهی اتصال این دو بسیار حائز اهمیت است. این ضرورت موجب شد تا با آموزش اتصال Sql Server به C# در این پست همراه شما باشیم. در پایان این آموزش شما به مهارتی دست خواهید یافت که اساس برنامه نویسی در سطح حرفه ای میباشد.
اصول اتصال به پایگاه داده
سیشارپ و داتنت میتوانند با اکثر پایگاههای داده کار کنند که رایجترین آنها Oracle و Microsoft SQL Server است. اصول پشت صحنهی همهی پایگاه دادهها، اغلب یکسان است. ما با مثالی به کارکرد Microsoft SQL Server به عنوان یک پایگاه داده که نرم افزار پایگاه داده رایگان، ارائه شده توسط مایکروسافت است میپردازیم. مفاهیم زیر در کار با همه پایگاههای داده مشترک است.
۱) اتصال (Connection): برای کار با دادهها در یک پایگاه داده، اولین مرحله اتصال است.در اتصال به پایگاه داده معمولاً پارامترهای زیر استفاده میشود:
_ نام پایگاه داده یا منبع داده: اولین پارامتر مهم، نام پایگاه داده است که باید اتصال به آن برقرار شود. هر اتصال میتواند تنها با یک پایگاه داده در یک زمان کار کند.
_ اعتبار: جنبه مهم بعدی نام کاربری و رمز عبور است که باید برای ایجاد اتصال به پایگاه داده استفاده شود. اعتبار تضمین میکند که نام کاربری و رمز عبور دارای امتیازات لازم برای اتصال به پایگاه داده هستند.
_ پارامترهای اختیاری: برای هر نوع پایگاه داده، میتوان پارامترهای اختیاری تعیین کرد تا اطلاعات بیشتری در مورد اینکه چگونه net. باید اتصال به پایگاه داده را انجام دهد، ارائه داده باشید. برای مثال، میتوان پارامتری را برای مدت زمانی که اتصال باید فعال بماند، مشخص کرد. اگر هیچ عملیاتی برای یک دوره زمانی خاص انجام نشود، آنگاه پارامتر تعیین می کند که آیا اتصال باید بسته شود یا خیر.
۲) انتخاب دادهها از پایگاه داده: هنگامی که اتصال برقرار شد، جنبه مهم بعدی واکشی دادهها از پایگاه داده است. سی شارپ میتواند دستور انتخاب SQL را در مقابل پایگاه داده اجرا کند و واکشی دادهها از یک جدول خاص در پایگاه داده را انجام دهد.
۳) درج دادهها در پایگاه داده: C# میتواند برای درج رکوردها در پایگاه داده استفاده شود. برای هر ردیفی که باید در پایگاه داده درج شود، میتوان مقادیر را در سی شارپ مشخص کرد.
۴) به روز رسانی دادهها در پایگاه داده: C# میتواند برای به روز رسانی رکوردهای موجود در پایگاه داده استفاده شود. برای هر ردیفی که باید در پایگاه داده به روز شود، میتوان مقادیر جدیدی را در سی شارپ مشخص کرد.
۵) حذف دادهها از پایگاه داده: C# همچنین میتواند برای حذف رکوردها در پایگاه داده استفاده شود. در سی شارپ میتوان دستوراتی را برای تعیین ردیفهایی که باید حذف شوند انتخاب کرد.
اکنون که تئوری عملیات را دیدیم، اجازه دهید به بخشهای بعدی پرویم تا ببینیم چگونه میتوانیم عملیات پایگاه داده را در C# انجام دهیم.
دستور SQL در سی شارپ
SqlCommand در سی شارپ به کاربر اجازه میدهد تا دستورات را پرس و جو کرده و به پایگاه داده ارسال کند. دستور SQL توسط شئ اتصال SQL مشخص شده و به دو روش استفاده میشود:
روش ExecuteReader برای نتایج پرس و جو
روش ExecuteNonQuery برای دستورات درج، به روز رسانی و حذف.
پاورپوینت اتصال سی شارپ به sql server در مجموعه آموزشی پی استور جهت ارائه شما عزیزان تدوین و طراحی شده و شامل ۲۴ اسلاید میباشد که میتوانید جهت دانلود و مطالعه این فایل به لینک زیر مراجعه کنید.
نحوه اتصال سی شارپ به پایگاه داده
اکنون با استفاده از یک کد نحوهی اتصال سی شارپ به پایگاه داده را توضیح میدهیم. در مثال زیر ما به پایگاه دادهای متصل میشویم که نام Demodb را دارد. اعتبار مورد استفاده برای اتصال به پایگاه داده به صورت زیر است:
نام کاربری: sa
رمز عبور: demo123
ما یک برنامه ساده با فرمهای ویندوز، برای کار با پایگاههای داده که یک دکمه به نام “Connect” دارد ایجاد کردهایم که برای اتصال به پایگاه داده استفاده میشود. مراحل اتصال عبارتنداز:
مرحله ۱) مرحله اول شامل ایجاد یک پروژه جدید در ویژوال استودیو (Visual studio) است. پس از راه اندازی ویژوال استودیو، باید گزینه منو New>Project را انتخاب کنید.
مرحله ۲) مرحله بعدی انتخاب نوع پروژه به عنوان یک برنامه Windows Forms است. در اینجا لازم است نام و محل پروژه خود را نیز ذکر کنیم.
مرحله ۳) حالا یک دکمه از جعبه ابزار به فرم ویندوز اضافه کنید. ویژگی متن دکمه را به عنوان Connect قرار دهید.
مرحله ۴) اکنون روی فرم دوبار کلیک کنید تا یک رویداد کنترل کننده به کد رویداد کلیک دکمه اضافه شود. در کنترل کننده رویداد، کد زیر را اضافه کنید.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DemoApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string connetionString; SqlConnection cnn; connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demol23"; cnn = new SqlConnection(connetionString); cnn.Open(); MessageBox.Show("Connection Open !"); cnn.Close(); } } }
توضیح کد:
- اولین مرحله ایجاد متغیرهایی است که برای ایجاد رشته اتصال و اتصال به پایگاه داده SQL Server استفاده می شود.
- مرحله بعدی ایجاد رشته اتصال است. رشته اتصال باید به درستی برای C# مشخص شود که شامل قسمت های زیر است:
_ منبع داده: این نام سروری است که پایگاه داده در آن قرار دارد. در این مثال، روی ماشینی به نام WIN-50GP30FGO75 قرار دارد.
_ از Initial Catalog برای تعیین نام پایگاه داده استفاده میشود
_ UserID و Password اعتبار مورد نیاز برای اتصال به پایگاه داده هستند. - سپس رشته اتصال را به متغیر cnn اختصاص میدهیم. متغیر cnn که از نوع SqlConnection است برای برقراری ارتباط با پایگاه داده استفاده میشود.
- در مرحله بعد از متد Open متغیر cnn برای باز کردن اتصال به پایگاه داده استفاده میکنیم. سپس فقط یک پیام به کاربر نشان میدهیم که اتصال برقرار شده است.
- هنگامی که عملیات با موفقیت انجام شد، اتصال به پایگاه داده را میبندیم.
وقتی کد بالا تنظیم شد و پروژه با استفاده از ویژوال استودیو اجرا شد، خروجی زیر را دریافت خواهید کرد. پس از نمایش فرم روی دکمه Connect کلیک کنید.
با کلیک بر روی دکمه “Connect” از خروجی مشاهده می کنید که اتصال پایگاه داده برقرار شده است. چنانچه تصمیم به ارائه کلاسی و آموزش در این زمینه دارید میتوانید از فایل آماده موجود در لینک زیر استفاده کنید.
دسترسی به داده ها
برای نشان دادن نحوه دسترسی به دادهها با استفاده از C# جدولی به نام demotb. را در نظر میگیریم. جدول دارای ۲ ستون خواهد بود، یکی به نام “TutorialID” و دیگری به نام “TutorialName” و در حال حاضر، جدول مطابق شکل زیر دارای ۲ ردیف خواهد بود.
حالا کد را در فرم خود تغییر میدهیم تا بتوانیم این دادهها را پرس و جو کنیم و اطلاعات را از طریق یک جعبه پیام نمایش دهیم. توجه داشته باشید که تمامی کدهای وارد شده در زیر ادامه کدی است که برای اتصال داده در قسمت قبل نوشته شده است.
مرحله ۱) کد را به ۲ قسمت تقسیم میکنیم تا درک آن برای کاربر آسان باشد. اولین مورد ساخت عبارت “انتخاب” ما است که برای خواندن دادهها از پایگاه داده استفاده میشود. سپس عبارت “select” را در مقابل پایگاه داده اجرا میکنیم و تمام ردیفهای جدول را بر اساس آن واکشی میکنیم.
همانطوری که در کد بالا میبینید، اولین قدم ایجاد متغیرهای زیر است:
- SQLCommand :SQLCommand کلاسی است که در C# تعریف شده است. این کلاس برای انجام عملیات خواندن و نوشتن در پایگاه داده استفاده میشود. از این رو، اولین قدم این است که مطمئن شوید که یک نوع متغیر از این کلاس ایجاد میکنیم. سپس این متغیر در مراحل بعدی خواندن دادهها از پایگاه داده ما استفاده خواهد شد.
- شی DataReader برای دریافت تمام دادههای مشخص شده توسط پرس و جوی SQL استفاده میشود. سپس میتوانیم تمام ردیفهای جدول را یک به یک با استفاده از دستور خواندن بخوانیم.
- سپس ۲ متغیر رشتهای تعریف میکنیم، یکی برای نگه داشتن رشته دستور SQL ما است. مورد بعدی “خروجی” است که حاوی تمام مقادیر جدول است.
مرحله بعدی تعریف دستور SQL است که در مقابل پایگاه داده ما استفاده خواهد شد. در مورد ما، “Select TutorialID, TutorialName از demotb” است. با این کار تمام سطرها از demotb جدول واکشی میشود.
در مرحله بعد، شی فرمان را ایجاد میکنیم که برای اجرای دستور SQL در پایگاه داده استفاده میشود. در دستور SQL باید شی اتصال و رشته SQL را رد کنید.
سپس دستور خواندن داده را اجرا میکنیم که تمام سطرها را از جدول demotb واکشی میکند.
حالا که تمام سطرهای جدول را با خود داریم، به مکانیزمی نیاز داریم تا به سطرها یکی یکی دسترسی پیدا کنیم. برای این منظور از دستور while استفاده میکنیم. دستور while برای دسترسی به ردیفها با استفاده از دستور خواندن داده در یک زمان استفاده میشود. سپس از متد GetValue برای بدست آوردن مقدار TutorialID و TutorialName استفاده میکنیم.
مرحله ۲) در مرحله آخر فقط خروجی را به کاربر نمایش میدهیم و تمام آبجکتهای مربوط به عملیات پایگاه داده را میبندیم.
کد خود را با نمایش مقدار متغیر Output با استفاده از MessageBox ادامه میدهیم. متغیر Output حاوی تمام مقادیر جدول demotb خواهد بود.
وقتی کد بالا تنظیم شد و پروژه با استفاده از ویژوال استودیو اجرا شد، خروجی زیر را دریافت خواهید کرد. پس از نمایش فرم روی دکمه Connect کلیک کنید.
از خروجی، به وضوح می توانید ببینید که برنامه توانسته مقادیر را از پایگاه داده دریافت کند. سپس داده ها در کادر پیام نمایش داده میشوند.
درج در پایگاه داده
درست مانند دسترسی به دادهها، سیشارپ نیز این قابلیت را دارد که رکوردها را در پایگاه داده وارد کند. برای نشان دادن نحوه درج رکوردها در پایگاه داده خود، همان ساختار جدولی را که در بالا استفاده شد، در نظر میگیریم.
TutorialName | TutorialID |
---|---|
#C | ۱ |
ASP.Net | ۲ |
کد را در فرم خود تغییر میدهیم تا بتوانیم ردیف زیر را در جدول وارد کنیم.
TutorialName | TutorialID |
---|---|
VB.net | ۳ |
کد زیر را به برنامه خود اضافه میکنیم. قطعه کد زیر برای درج یک رکورد موجود در پایگاه داده ما استفاده خواهد شد.
اولین قدم ایجاد متغیرهای زیر است:
SQLCommand: این نوع داده برای تعریف اشیائی استفاده میشود که برای انجام عملیات SQL در برابر پایگاه داده استفاده میشود. این شئ دستور SQL را نگه میدارد که در مقابل پایگاه داده SQL Server ما اجرا میشود.
شئ DataAdapter برای انجام عملیات SQL خاص مانند دستورات درج، حذف و به روز رسانی استفاده میشود. سپس یک متغیر رشتهای تعریف میکنیم که “SQL” است تا رشته دستور SQL ما را نگه دارد.
گام بعدی این است که دستور SQL را تعریف کنیم که در مقابل پایگاه داده ما استفاده میشود. یک بیانیه درج صادر میکنیم که رکورد TutorialID=1 و TutorialName=VB.Net را درج میکند.
در مرحله بعد، شئ فرمان را ایجاد میکنیم که برای اجرای دستور SQL در پایگاه داده استفاده میشود. در دستور SQL باید شئ اتصال و رشته SQL را رد کنید. اکنون دستور insert SQL را به آداپتور خود مرتبط میکنیم.
سپس متد ExecuteNonQuery را نیز صادر میکنیم که برای اجرای دستور Insert در مقابل پایگاه داده ما استفاده میشود. متد “ExecuteNonQuery” در سی شارپ برای صدور هرگونه دستور DML در برابر پایگاه داده استفاده میشود. منظور ما از عبارات DML عملیات درج، حذف و به روز رسانی است.
در سی شارپ، اگر میخواهید هر یک از این دستورات را در برابر جدول صادر کنید، باید از متد ExecuteNonQuery استفاده کنید. در نهایت تمام اشیاء مربوط به عملیات پایگاه داده خود را میبندیم.
به روز رسانی پایگاه داده C#
درست مانند دسترسی به دادهها، سی شارپ نیز توانایی به روز رسانی رکوردهای موجود از پایگاه داده را دارد. برای نمایش نحوه به روز رسانی رکوردها در پایگاه داده خود، همان ساختار جدولی را که در بالا استفاده شد، در نظر میگیریم.
TutorialName | TutorialID |
---|---|
#C | ۱ |
ASP.NET | ۲ |
VB.NET | ۳ |
بیایید کد را در فرم خود تغییر دهیم تا بتوانیم ردیف زیر را به روز کنیم. مقدار ردیف قدیمی TutorialID به عنوان “۳” و نام آموزشی به عنوان “VB.Net” است. که ما آن را به “VB.Net کامل” به روز میکنیم در حالی که مقدار ردیف برای شناسه آموزشی ثابت میماند.
ردیف قبلی:
TutorialName | TutorialID |
---|---|
VB.net | ۳ |
ردیف جدید:
TutorialName | TutorialID |
---|---|
VB.NET Complete | ۳ |
پس بیایید کد زیر را به برنامه خود اضافه کنیم. قطعه کد زیر برای به روز رسانی یک رکورد موجود در پایگاه داده ما استفاده خواهد شد.
اولین مرحله ایجاد متغیرهای زیر است:
- SQLCommand: این نوع داده برای تعریف اشیائی استفاده میشود که برای انجام عملیات SQL در برابر پایگاه داده استفاده میشوند. این شئ دستور SQL را نگه میدارد تا در مقابل پایگاه داده SQL Server ما اجرا شود.
- شئ dataadapter: برای انجام عملیات SQL خاص مانند دستورات درج، حذف و به روز رسانی استفاده میشود.
- سپس یک متغیر رشتهای تعریف میکنیم که از نوع SQL است تا رشته دستور SQL ما را نگه دارد.
مرحله دوم تعریف دستور SQL است که در پایگاه داده ما استفاده میشود. یک دستور بهروزرسانی صادر میکنیم که این نام آموزشی را به «VB.Net Complete» بهروزرسانی میکند در حالی که شناسه آموزشی بدون تغییر است و به عنوان ۳ باقی میماند.
در مرحله سوم، شئ دستور را ایجاد میکنیم که برای اجرای دستور SQL در مقابل پایگاه داده استفاده میشود. در دستور SQL، آبجکت اتصال و رشته SQL را رد کردهایم.
در مرحله چهارم، دستور insert SQL را به آداپتور خود مرتبط میکنیم. سپس متد ExecuteNonQuery را نیز صادر میکنیم که برای اجرای عبارت Update در مقابل پایگاه داده ما استفاده میشود.
در نهایت و در مرحله پنجم تمام اشیاء مربوط به عملیات پایگاه داده خود را میبندیم. اگر به SQL Server Express بروید و ردیفها را در جدول demotb ببینید، خواهید دید که ردیف با موفقیت بهروز رسانی شده است. برای مطالعه و آگاهی بیشتر و داشتن ارائهای آموزشی و مفید در این زمینه به لینک زیر مراجعه کنید.
حذف رکوردها
درست مانند دسترسی به دادهها، سی شارپ توانایی حذف رکوردهای موجود از پایگاه داده را نیز دارد. برای نمایش نحوه حذف رکوردها در پایگاه داده، همان ساختار جدولی را که در بالا استفاده شد، در نظر بگیریم.
TutorialName | TutorialID |
---|---|
#C | ۱ |
ASP.NET | ۲ |
VB.NET Complete | ۳ |
کد را در فرم خود تغییر میدهیم تا بتوانیم ردیف زیر را حذف کنیم.
TutorialName | TutorialID |
---|---|
VB.NET Complete | ۳ |
با این کد دستور حذف SQL را صادر میکنیم. دستور delete برای حذف ردیفی از جدول demotb که در آن TutorialID دارای مقدار ۳ است استفاده میشود.
حالا دستور insert SQL را به آداپتور خود مرتبط میکنیم. سپس متد ExecuteNonQuery را نیز صادر میکنیم که برای اجرای دستور Delete در مقابل پایگاه داده ما استفاده میشود.
اگر به SQL Server Express بروید و ردیفهای جدول demotb را ببینید، میبینید که ردیف با موفقیت حذف شده است.
معرفی محصول پروژه حضور و غیاب اساتید دانشگاه با #C و پایگاه داده Sql server
پروژه حضور و غیاب اساتید دانشگاه با #C و پایگاه داده Sql server پروژهای است که با زبان #C و پایگاه داده Sql Server نوشته شده است. در این پروژه سعی شده حدالامکان تمامی امکاناتی که باید در یک برنامه حضورغیاب وجود داشته باشد را دارا باشد.
این برنامه حضور و غیاب ما شامل دو سطح دسترسی میباشد که این کار برای بالا بردن سطح امنیت اطلاعات برنامه است که همین امر باعث بالا بردن کارایی برنامه میشود و باعث جلوگیری از خرابکاریها و دسترسی بی جا به اطلاعات میشود.
یکی از سطح های دسترسی در این برنامه مربوط به مدیر یا admin است و دیگری مربوط به کاربر است که در این برنامه کاربر مورد نظر ما همان استادهایی هستند که در این برنامه ثبت نام کرده و اطلاعات حضوری خود را وارد دیتابیس برنامه میکنند.
سخن آخر در مورد آموزش اتصال Sql Server به C#
در این آموزش، یعنی آموزش اتصال Sql Server به C# دستورات مورد نیاز برای برقراری ارتباط با پایگاه داده SQL به صورت تئوری و عملی بررسی شد. با استفاده از دستورات موجود در سی شارپ میتوانید عملیاتی مانند انتخاب، بروزرسانی، درج و حذف را انجام دهید و در دنیای برنامه نویسی که بدون پایگاه داده عملاً کاربرد چندانی ندارد حرفی برای گفتن داشته باشید.
با اصول اولیه و مهمی که آموختید میتوانید مانور بیشتری روی حجم عظیم جداول اطلاعاتی انجام داده و آنها را مدیریت کنید و قابلیتهای برنامه نویسی را افزایش دهید. امید آن میرود که توانسته باشیم مطالبی مفید و کاربردی ارائه دهیم، منتظر نظرات و پیشنهادات سازنده شما در این زمینه هستیم.
3 پاسخ
سلام وقت بخیر از مباحث کلاس و ارث بری استفاده شده؟؟؟
سلام و درود
آقا من رمز سرور مجازیم رو فراموش کردم و سایت هاستینگ هم میگه مسعولیتش با خودت بوده و ما کاری نمی تونیم کنیم !! به همین دلیل نمیتونم به دیتابیس متصل شم رمز هم براش ست ندادم هیچ کاری نکردم !! باید چکار کنم ؟؟؟
با سلام ببخشید می خواستم بدونم چگونه می توانم دیتا بیس را به تایمر ربط بدهم و خودم یک زمانی را تعین کنم و هنگام شدن تایم object در دیتا بیس به من اخطار دهد