در این مقاله از مجموعه مقالات پیاستور میخواهیم درمورد آموزش اتصال پایگاه داده در C# صحبت کنیم. اتصال پایگاه داده در C# یکی از مراحل حیاتی در توسعه نرمافزارهای مبتنی بر داده است. در سی شارپ، برای برقراری ارتباط با پایگاه داده از تکنولوژیهایی مانند ADO.NET و Entity Framework (EF) و دیگر فریمورکها استفاده میشود.
مقدمه
در دنیای امروز، حجم عظیمی از اطلاعات در حال تولید و مدیریت است. پایگاه داده بهعنوان یک ابزار قدرتمند برای سازماندهی، ذخیره و بازیابی این اطلاعات، نقش کلیدی در توسعه نرمافزارهای مدرن ایفا میکند. از سیستمهای بانکی و فروشگاههای آنلاین گرفته تا برنامههای مدیریت منابع انسانی و اپلیکیشنهای موبایل، پایگاه دادهها بخشی جداییناپذیر از معماری نرمافزارها هستند.
این ابزارها نه تنها امکان ذخیرهسازی دادهها را فراهم میکنند، بلکه به تحلیل، مدیریت و ارائه اطلاعات به شکلی کارآمد کمک میکنند. در نتیجه، توانایی کار با پایگاه داده یکی از مهارتهای ضروری برای توسعهدهندگان نرمافزار محسوب میشود.
زبان برنامهنویسی سی شارپ به دلیل ویژگیهای قدرتمند و انعطافپذیر خود، یکی از انتخابهای محبوب برای توسعه نرمافزارهای متصل به پایگاه داده است. این زبان که توسط مایکروسافت توسعه داده شده، بهخوبی با محیطهای ویندوز و ابزارهای مرتبط مانند SQL Server ادغام میشود. همچنین، از آن برای توسعه برنامههای تحت وب، دسکتاپ و موبایل که نیاز به تعامل با پایگاه داده دارند، استفاده میشود.
روشهای اتصال پایگاه داده در C#
دسترسی به دادهها از یک پایگاه داده یکی از جنبههای مهم هر زبان برنامهنویسی است. برای هر زبان برنامهنویسی ضروری است که توانایی کار با پایگاههای داده را داشته باشد. زبان سی شارپ نیز از این قاعده مستثنی نیست.
سی شارپ میتواند با انواع مختلف پایگاههای داده کار کند. این زبان قادر است با پایگاههای داده متداولی مانند Oracle و Microsoft SQL Server کار کند. همچنین، میتواند با انواع جدیدی از پایگاههای داده مانند MongoDB و MySQL نیز تعامل داشته باشد.
اتصال پایگاه داده در C# با روش ADO.NET
اتصال به پایگاه داده در C# با استفاده از ADO.NET یکی از روشهای رایج برای مدیریت دادهها است. ADO.NET مجموعهای از کلاسها و ابزارها برای ارتباط با پایگاه دادهها (مانند SQL Server) را فراهم میکند و امکان اجرای کوئریها، ذخیره دادهها، و مدیریت ارتباطات را میدهد. ADO.NET بهعنوان یکی از ابزارهای اصلی در داتنت فریمورک، یک رابط قوی برای تعامل با پایگاه دادهها فراهم میکند. این فناوری به توسعهدهندگان اجازه میدهد تا به پایگاه دادههای مختلف مانند SQL Server متصل شده و عملیاتهایی نظیر درج، حذف، و بهروزرسانی دادهها را انجام دهند. برای اتصال به پایگاه داده در C# مراحل زیر را دنبال کنید.
۱- ایجاد پایگاه داده در SQL Server
برای اتصال پایگاه داده در C# ابتدا بایستی یک پایگاه داده ایجاد کنیم. برای این کار وارد نرم افزار SQL Server شوید. ایجاد پایگاه داده در SQL Server به دو روش قابل انجام است:
- استفاده از محیط گرافیکی SQL Server Management Studio (SSMS)
- استفاده از دستورات T-SQL
برای ایجاد پایگاه داده در SQL Server با استفاده از محیط گرافیکی SQL Server Management Studio (SSMS)، مراحل زیر را دنبال کنید:
- وارد برنامه SQL Server Management Studio شوید و به سرور خود متصل شوید.
- در پنجره Object Explorer، روی Databases راستکلیک کنید و گزینه New Database را انتخاب کنید.
- در پنجره باز شده، نام پایگاه داده را در فیلد Database Name وارد کنید.
- روی دکمه OK کلیک کنید تا پایگاه داده ایجاد شود.
برای ایجاد یک پایگاه داده با کد در SQL Server، از دستور T-SQL زیر استفاده کنید:
CREATE DATABASE DatabaseName; USE MyDatabase;
- CREATE DATABASE: دستور ایجاد پایگاه داده.
- DatabaseName: نام پایگاه دادهای که میخواهید ایجاد کنید.
سینتکس کلی ایجاد پایگاه داده به این صورت است. در نهایت دکمه Execute را کلیک کنید تا کد اجرا گردد. در تصویر زیر کد مربوط به مثال را مشاهده میکنید.
۲- ایجاد جدول در پایگاه داده
پس از ایجاد پایگاه داده باید یک جدول (و یا چند جدول بسته به نیاز شما) ایجاد کنید. برای ایجاد جدول نیز میتوان از دو روش محیط گرافیکی و دستورات SQL، استفاده کرد. برای ایجاد جدول در SQL Server با استفاده از محیط گرافیکی (SSMS)، مراحل زیر را دنبال کنید:
- در پنجره Object Explorer، پایگاه داده مورد نظر را انتخاب کنید.
- روی پوشه Tables راستکلیک کرده و گزینه New Table را انتخاب کنید.
- در صفحه طراحی جدول، نام ستونها، نوع دادهها (مانند INT، NVARCHAR)، و محدودیتها (مانند Primary Key) را وارد کنید.
- از منوی بالا، دکمه Save را فشار دهید و نام جدول را وارد کنید.
اما برای ایجاد یک جدول با کد در SQL Server، میتوانید از دستور T-SQL زیر استفاده کنید:
CREATE TABLE TableName ( Column1 DataType [Constraints], Column2 DataType [Constraints] )
- CREATE TABLE: دستور ایجاد جدول.
- TableName: نام جدول.
- Column1, Column2: نام ستونها.
- DataType: نوع داده ستون (مانند INT, VARCHAR, DATE).
- Constraints: محدودیتهایی مانند PRIMARY KEY, NOT NULL, UNIQUE.
سینتکس کلی ایجاد جدول به این صورت است و میتوانید با توجه به نیاز خود آن را مقداردهی کنید. در نهایت دکمه Execute را کلیک کنید تا کد اجرا گردد. در تصویر زیر کد مربوط به مثال را مشاهده میکنید.
۳- ایجاد پروژه سی شارپ
برای ایجاد یک پروژه Windows Form در ویژوال استودیو، ابتدا باید نرمافزار ویژوال استودیو را باز کرده و از منوی File گزینه New > Project را انتخاب کنید. سپس در پنجرهی باز شده، زبان برنامه نویسی سی شارپ و نوع پروژه را “Windows Forms App” انتخاب کنید. بعد از انتخاب این گزینه، باید نام پروژه و محل ذخیرهسازی آن را در پایین صفحه تعیین کرده و روی دکمه “OK” کلیک کنید. با این کار، محیط توسعه برای پروژه شما آماده میشود.
در مرحله بعد، فرم اصلی پروژه به طور خودکار در ویژوال استودیو بارگذاری میشود و شما میتوانید از طریق پنل Toolbox ابزارهای مختلفی مانند دکمهها، جعبههای متن و برچسبها را به فرم اضافه کنید. پس از طراحی فرم، میتوانید کدهای مورد نظر خود را برای عملکرد برنامه بنویسید. برای اجرای پروژه، کافی است که از گزینه “Start” یا F5 استفاده کنید تا برنامه شما در محیط Windows Form اجرا شود.
۴- ارتباط با پایگاه داده در C# با Server Explorer
بخش Server Explorer در ویژوال استودیو ابزاری قدرتمند برای مدیریت و تعامل با پایگاههای داده و سایر منابع سرور است. این بخش به شما اجازه میدهد تا بهسادگی به پایگاههای داده متصل شوید، جداول، نماها (Views)، ذخیرهشدهها (Stored Procedures)، و دیگر اشیای پایگاه داده را مشاهده و مدیریت کنید.
از Server Explorer میتوانید برای انجام وظایف مختلفی مانند ایجاد اتصالات جدید به پایگاه داده، مشاهده دادهها در جداول، اجرای دستورات SQL، و مدیریت تغییرات در ساختار پایگاه داده (مانند ایجاد یا حذف جداول و ستونها) استفاده کنید. همچنین، این ابزار برای دیباگ کردن کوئریها و بررسی دادهها در زمان توسعه بسیار مفید است و به توسعهدهندگان اجازه میدهد تا بدون نیاز به خروج از محیط ویژوال استودیو، با پایگاههای داده تعامل داشته باشند.
برای دسترسی به این بخش از منوی بالا، گزینه View را انتخاب کنید. در منوی کشویی که باز میشود، روی Server Explorer کلیک کنید.
پس از باز کردن Server Explorer، پنجره آن معمولاً در سمت چپ یا راست محیط ویژوال استودیو نمایش داده میشود. بر روی گزینه Choose data source کلیک کنید.
از آنجایی که هدف ما اتصال پایگاه داده در C# به کمک SQL Server است، طبق تصویر گزینه سوم را انتخاب کرده و دکمه Continue را کلیک کنید.
در این بخش باید در قسمت Server Name از منوی کشویی نام سرور سیستم خود و در قسمت Select or enter a database name از منوی کشویی نام پایگاه داده خود را انتخاب کنید.
در نهایت بر روی دکمه Test Connection کلیک کنید تا بررسی ارتباط با پایگاه داده در C# انجام شود. چنانچه ارتباط موفق باشد پیغام زیر را مشاهده خواهید کرد.
۵- ایجاد اتصال پایگاه داده در C#
پس از آن که در محیط سی شارپ پایگاه داده خود را به برنامه شناساندیم، بایستی برای ایجاد ارتباط بین برنامه و پایگاه داده از یک رشته اتصال استفاده کنیم. برای این کار طبق توضیحات مرحله بالا بایستی یک برنامه ساده طراحی کنیم. برای مثال در محیط Windows Form برنامه زیر را طراحی کنید.
در این برنامه، کاربر یک نام و نام خانوادگی وارد میکند و سپس با کلیک بر روی دکمه Save اتصال انجام شده و اطلاعات وارد شده در پایگاه داده ذخیره خواهد شد. پس از طراحی بر روی دکمه Save دابل کلیک کنید تا وارد محیط برنامه نویسی شوید.
توجه کنید که قبل از نوشتن کدها برای عملکرد دکمه، نیاز داریم تا فضای نام (namespace) مربوط به کتابخانههای SQL Server را در برنامه وارد کنیم. برای این کار به ابتدای صفحه بروید و در بخش usageها کد زیر را وارد کنید.
using System.Data.SqlClient;
این کد برای استفاده از امکانات و کلاسهای مربوط به SQL Server در برنامههای سیشارپ به کار میرود. این فضای نام شامل کلاسهایی است که برای تعامل با پایگاه دادههای SQL Server استفاده میشوند. به عبارت دیگر، با افزودن این خط در ابتدای کد خود، شما بهطور مستقیم به کلاسها و توابع مربوط به اتصال به SQL Server و اجرای دستورات SQL دسترسی پیدا میکنید.
حال به بخش قبلی (عملکرد دکمه) برگردید. در این بخش کدهای زیر را وارد نمایید. در کدهای زیر رشته اتصال (ConnectionString) مشخص میکند که برنامه به کدام سرور SQL و پایگاه داده متصل شود. در مثال، اتصال به سرور AAKASH\SQLEXPRESS و پایگاه دادهای به نام MyDB انجام میشود. دادههای کاربر (مانند FirstName و SecondName) نیز با استفاده از دستور INSERT INTO وارد جدول میشوند.
// ۱. آدرس اسکیوال و پایگاه داده string ConnectionString = "Data Source=AAKASH\\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True"; // ۲. برقراری ارتباط SqlConnection con = new SqlConnection(ConnectionString); // ۳. بازکردن اتصال con.Open(); // ۴. نوشتن کدهای کوئری string FirstName = tbFirstName.Text; string SecondName = tbSecondName.Text; string Query = "INSERT INTO Names (FirstName, SecondName) VALUES ('" + FirstName + "', '" + SecondName + "')"; // ۵. اجرای کوئری SqlCommand cmd = new SqlCommand(Query, con); cmd.ExecuteNonQuery(); // ۶. بستن اتصال con.Close(); // پیغام MessageBox.Show("Data has been saved");
ممکن است آدرس اسکیوال و پایگاه داده شما با مثال بالا متفاوت باشد. برای فهمیدن این آدرس طبق مراحل چهار پیش بروید، و پس از اینکه وارد صفحه تست ارتباط با پایگاه داده شدید، بر روی دکمه Advanced کلیک کنید تا صفحهای مشابه صفحه زیر باز گردد.
در این صفحه کد موجود در پایین صفحه را میتوانید کپی کنید و در برنامه خود استفاده نمایید.
۵- تست برنامه
پس از آن که پایگاه داده در C# را به هم متصل کردیم، نوبت به تست برنامه میرسد. به Windows Form برگردید و بر روی دکمه Start کلیک کنید تا برنامه اجرا گردد. حالا در تکست باکسها اطلاعات خود را وارد کنید. سپس بر روی دکمه Save کلیک کنید. پس از بستن پنجره پیغام به نرم افزار SQL Server مراجعه نمایید. با گرفتن خروجی از جدول مربوطه اطلاعات جدید را که از طریق برنامه سی شارپ به پایگاه داده اضافه شده است مشاهده خواهید کرد.
اتصال پایگاه داده در C# با روش Entity Framework
Entity Framework (EF) یک ORM (Object-Relational Mapping) برای زبان برنامهنویسی سی شارپ و .NET است که به توسعهدهندگان این امکان را میدهد تا بهراحتی با پایگاه دادههای رابطهای ارتباط برقرار کنند. به عبارت ساده، EF اجازه میدهد تا پایگاه دادههای رابطهای (مثل SQL Server) را بهطور طبیعی و بهصورت شیگرا (Object-Oriented) در برنامهنویسی سی شارپ مدیریت کنید.
در EF، شما نیازی به نوشتن کد SQL برای انجام عملیات پایگاه داده ندارید، بلکه از کلاسهای سی شارپ بهعنوان نماینده جداول پایگاه داده استفاده میکنید. این باعث میشود که کدنویسی سریعتر، سادهتر و تمیزتر باشد. برای اتصال به پایگاه داده با استفاده از Entity Framework Core، باید مراحل زیر را طی کنید:
۱- نصب پکیجهای مورد نیاز
قبل از هر چیز، شما باید پکیجهای Entity Framework Core را در پروژه خود نصب کنید. برای اتصال به پایگاه داده SQL Server، پکیجهای زیر را نصب کنید:
- Microsoft.EntityFrameworkCore.SqlServer: برای پشتیبانی از SQL Server.
- Microsoft.EntityFrameworkCore.Tools: برای استفاده از ابزارهای EF Core (برای اجرای مایگریشنها و غیره).
شما میتوانید این پکیجها را با استفاده از NuGet یا با دستور زیر در ترمینال نصب کنید:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools
۲- تعریف مدلها
برای شروع، باید مدلهایی را که نماینده جداول پایگاه داده هستند، تعریف کنید. این مدلها همان کلاسهای سی شارپ هستند که مقادیر ستونهای پایگاه داده را نگه میدارند. مثال:
public class User { public int Id { get; set; } // ستون Id در جدول public string Name { get; set; } // ستون Name در جدول public string Email { get; set; } // ستون Email در جدول }
۳- تعریف Context
در EF، باید یک کلاس DbContext تعریف کنید که با پایگاه داده شما ارتباط برقرار کند. این کلاس مسئول تنظیمات اتصال به پایگاه داده و عملیات دادهای است. مثال:
using Microsoft.EntityFrameworkCore; public class ApplicationContext : DbContext { public DbSet<User> Users { get; set; } // این نماینده جدول Users است protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlServer("Server=localhost; Database=YourDatabase; Integrated Security=True;"); }
در اینجا، DbSet<User> یک مجموعه از اشیاء User است که معادل جدول Users در پایگاه داده میباشد.
۴- اجرای عملیات CRUD
بعد از اینکه مدلها و DbContext را تعریف کردید، میتوانید عملیات مختلفی مانند Create، Read، Update و Delete را انجام دهید. مثال:
using (var context = new ApplicationContext()) { // Create var user = new User { Name = "John Doe", Email = "john.doe@example.com" }; context.Users.Add(user); context.SaveChanges(); // ذخیره تغییرات در پایگاه داده // Read var users = context.Users.ToList(); foreach (var u in users) { Console.WriteLine($"Id: {u.Id}, Name: {u.Name}, Email: {u.Email}"); } // Update var existingUser = context.Users.FirstOrDefault(u => u.Name == "John Doe"); if (existingUser != null) { existingUser.Email = "new.email@example.com"; context.SaveChanges(); } // Delete var userToDelete = context.Users.FirstOrDefault(u => u.Name == "John Doe"); if (userToDelete != null) { context.Users.Remove(userToDelete); context.SaveChanges(); } }
۵- مایگریشنها
یکی از ویژگیهای مهم Entity Framework Core، قابلیت مایگریشنها است که به شما اجازه میدهد تغییرات مدل داده (مانند اضافه کردن یا تغییر دادن جداول) را به پایگاه داده منتقل کنید. برای ایجاد و اجرای مایگریشنها، مراحل زیر را انجام دهید:
- ایجاد مایگریشن: در ترمینال یا خط فرمان وارد کنید.
dotnet ef migrations add InitialCreate
- اجرای مایگریشن: برای اعمال تغییرات در پایگاه داده.
dotnet ef database update
نتیجه گیری
اتصال پایگاه داده در C# ابزاری قدرتمند برای مدیریت دادهها و ارتباط با سیستمهای اطلاعاتی است که با استفاده از ابزارها و کلاسهای مختلف میتوان بهینهترین راهحل را انتخاب کرد. اهمیت این دانش در توسعه نرمافزارهای مدرن بیبدیل است. برای کار با پایگاه داده در C#، انتخاب تکنولوژی بستگی به نیازهای پروژه شما دارد. اگر به دنبال کنترل بیشتر و عملکرد بهینه هستید، ADO.NET گزینه بهتری است. اما اگر به دنبال راحتی و سرعت در توسعه هستید، Entity Framework انتخاب مناسبی است.