# کد سی شارپ برای کار با دیتابیس SQLite
SQLite یک دیتابیس سبک و آسان برای استفاده است که به طور گسترده در برنامههای مختلف استفاده میشود. در اینجا، به بررسی چگونگی استفاده از SQLite با زبان برنامهنویسی C# میپردازیم.
نصب بستههای مورد نیاز
اولین قدم، نصب بستههای مورد نیاز است. به این منظور، میتوانید از NuGet Package Manager استفاده کنید. به سادگی به Console Package Manager رفته و کد زیر را وارد کنید:
```
Install-Package System.Data.SQLite
```
اتصال به دیتابیس
پس از نصب بسته، باید یک اتصال به دیتابیس SQLite برقرار کنیم. این کار با استفاده از کلاس `SQLiteConnection` انجام میشود. به عنوان مثال:
```csharp
using System.Data.SQLite;
string connectionString = "Data Source=mydatabase.db; Version=3;";
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
connection.Open();
// عملیات دیتابیس در اینجا انجام میشود
}
```
ایجاد جدول
برای ایجاد جدول، میتوانیم از دستورات SQL استفاده کنیم. در اینجا یک مثال آورده شده است:
```csharp
string createTableQuery = @"CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER NOT NULL)";
using (SQLiteCommand command = new SQLiteCommand(createTableQuery, connection))
{
command.ExecuteNonQuery();
}
```
افزودن داده
برای افزودن داده به جدول، میتوان از دستور INSERT استفاده کرد:
```csharp
string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
using (SQLiteCommand command = new SQLiteCommand(insertQuery, connection))
{
command.Parameters.AddWithValue("@name", "Ali");
command.Parameters.AddWithValue("@age", 25);
command.ExecuteNonQuery();
}
```
خواندن دادهها
برای خواندن دادهها از جدول، میتوان از دستور SELECT استفاده کرد:
```csharp
string selectQuery = "SELECT * FROM Users";
using (SQLiteCommand command = new SQLiteCommand(selectQuery, connection))
{
using (SQLiteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}, Age: {reader["Age"]}");
}
}
}
```
بروزرسانی و حذف دادهها
برای بروزرسانی و حذف دادهها نیز میتوان به سادگی از دستورات UPDATE و DELETE استفاده کرد:
```csharp
// بروزرسانی
string updateQuery = "UPDATE Users SET Age = @age WHERE Name = @name";
using (SQLiteCommand command = new SQLiteCommand(updateQuery, connection))
{
command.Parameters.AddWithValue("@name", "Ali");
command.Parameters.AddWithValue("@age", 26);
command.ExecuteNonQuery();
}
// حذف
string deleteQuery = "DELETE FROM Users WHERE Name = @name";
using (SQLiteCommand command = new SQLiteCommand(deleteQuery, connection))
{
command.Parameters.AddWithValue("@name", "Ali");
command.ExecuteNonQuery();
}
```
نتیجهگیری
در نهایت، کار با SQLite در C# بسیار ساده و کارآمد است. با استفاده از کلاسهای موجود، میتوانید به راحتی دادهها را مدیریت کنید. این دیتابیس گزینهای عالی برای پروژههای کوچک و متوسط است.
کد سیشارپ و دیتابیس SQLite: راهنمای کامل و جامع
وقتی بحث به برنامهنویسی در سیشارپ و کار با پایگاههای داده میرسد، SQLite یک گزینه محبوب و قدرتمند است که در بسیاری از پروژهها کاربرد دارد. این پایگاه داده، یک دیتابیس سبک و قابل حمل است، که به راحتی در برنامههای دسکتاپ، موبایل و حتی برنامههای وب قابل استفاده است. در ادامه، به صورت جامع و کامل، مفاهیم، نحوه اتصال، عملیات CRUD، و نکات مهم کار با SQLite در سیشارپ را بررسی میکنیم.
مبانی و نصب SQLite در پروژه سیشارپ
ابتدا باید کتابخانه مربوط به SQLite را در پروژهتان اضافه کنید. معمولاً از طریق NuGet Package Manager انجام میشود. بستهی `System.Data.SQLite`، یکی از پرکاربردترین گزینههاست که باید نصب کنید. پس از نصب، میتوانید از namespace مربوطه استفاده کنید:
```csharp
using System.Data.SQLite;
```
ایجاد و اتصال به پایگاه داده
برای شروع، باید یک فایل `.sqlite` ایجاد کنید یا اگر موجود است، به آن وصل شوید. این کار با ساخت یک اتصال (`SQLiteConnection`) انجام میشود. مثلا:
```csharp
string connectionString = "Data Source=sample.db;Version=3;";
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
// عملیات مورد نظر
}
```
در اینجا، `sample.db` نام فایل پایگاه داده است. اگر این فایل وجود نداشته باشد، هنگام اجرای عملیات، خود SQLite آن را میسازد.
ایجاد جدول در دیتابیس
قبل از وارد کردن دادهها، باید جداول مورد نیاز را بسازید. مثلا، برای ساخت یک جدول کاربران:
```csharp
string createTableQuery = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER
);";
using (SQLiteCommand cmd = new SQLiteCommand(createTableQuery, conn))
{
cmd.ExecuteNonQuery();
}
```
درج داده (INSERT)
برای افزودن رکورد جدید، از دستور `INSERT` استفاده میشود:
```csharp
string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age);";
using (SQLiteCommand cmd = new SQLiteCommand(insertQuery, conn))
{
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.Parameters.AddWithValue("@Age", 30);
cmd.ExecuteNonQuery();
}
```
خواندن دادهها (SELECT)
برای بازیابی دادهها، از دستور `SELECT` بهره میبریم:
```csharp
string selectQuery = "SELECT * FROM Users;";
using (SQLiteCommand cmd = new SQLiteCommand(selectQuery, conn))
{
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32(0);
string name = reader.GetString(1);
int age = reader.GetInt32(2);
Console.WriteLine($"ID: {id}, Name: {name}, Age: {age}");
}
}
}
```
بهروزرسانی دادهها (UPDATE)
برای تغییر دادههای موجود:
```csharp
string updateQuery = "UPDATE Users SET Age = @Age WHERE Name = @Name;";
using (SQLiteCommand cmd = new SQLiteCommand(updateQuery, conn))
{
cmd.Parameters.AddWithValue("@Age", 31);
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.ExecuteNonQuery();
}
```
حذف رکورد (DELETE)
برای حذف رکوردی خاص:
```csharp
string deleteQuery = "DELETE FROM Users WHERE Name = @Name;";
using (SQLiteCommand cmd = new SQLiteCommand(deleteQuery, conn))
{
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.ExecuteNonQuery();
}
```
نکات مهم و بهترین شیوههای کار با SQLite در سیشارپ
- همیشه از `using` برای مدیریت منابع استفاده کنید تا اتصالات بسته شوند.
- قبل از اجرای عملیاتهای حساس، از صحت و سلامت دادهها اطمینان حاصل کنید.
- برای عملیاتهای پیچیدهتر، از تراکنشها (`transaction`) بهره ببرید.
- از پارامترها در دستورات SQL استفاده کنید تا از حملات SQL Injection جلوگیری شود.
- در برنامههای بزرگ، ساخت لایههای جداگانه برای مدیریت پایگاه داده، به کاهش خطا و بهبود نگهداری کمک میکند.
در نتیجه، کار با SQLite در سیشارپ، نسبتاً ساده است، اما نیازمند رعایت نکات امنیتی و بهینهسازی است. این راهنما، شروع خوبی برای توسعه برنامههای مبتنی بر پایگاه داده است که نیاز دارند سبک، سریع و قابل حمل باشند. با تمرین و پیادهسازی نمونههای عملی، مهارت خود را در این حوزه افزایش دهید.
کد سیشارپ و دیتابیس SQLite: راهنمای کامل و جامع
وقتی بحث به برنامهنویسی در سیشارپ و کار با پایگاههای داده میرسد، SQLite یک گزینه محبوب و قدرتمند است که در بسیاری از پروژهها کاربرد دارد. این پایگاه داده، یک دیتابیس سبک و قابل حمل است، که به راحتی در برنامههای دسکتاپ، موبایل و حتی برنامههای وب قابل استفاده است. در ادامه، به صورت جامع و کامل، مفاهیم، نحوه اتصال، عملیات CRUD، و نکات مهم کار با SQLite در سیشارپ را بررسی میکنیم.
مبانی و نصب SQLite در پروژه سیشارپ
ابتدا باید کتابخانه مربوط به SQLite را در پروژهتان اضافه کنید. معمولاً از طریق NuGet Package Manager انجام میشود. بستهی `System.Data.SQLite`، یکی از پرکاربردترین گزینههاست که باید نصب کنید. پس از نصب، میتوانید از namespace مربوطه استفاده کنید:
```csharp
using System.Data.SQLite;
```
ایجاد و اتصال به پایگاه داده
برای شروع، باید یک فایل `.sqlite` ایجاد کنید یا اگر موجود است، به آن وصل شوید. این کار با ساخت یک اتصال (`SQLiteConnection`) انجام میشود. مثلا:
```csharp
string connectionString = "Data Source=sample.db;Version=3;";
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
// عملیات مورد نظر
}
```
در اینجا، `sample.db` نام فایل پایگاه داده است. اگر این فایل وجود نداشته باشد، هنگام اجرای عملیات، خود SQLite آن را میسازد.
ایجاد جدول در دیتابیس
قبل از وارد کردن دادهها، باید جداول مورد نیاز را بسازید. مثلا، برای ساخت یک جدول کاربران:
```csharp
string createTableQuery = @"
CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Age INTEGER
);";
using (SQLiteCommand cmd = new SQLiteCommand(createTableQuery, conn))
{
cmd.ExecuteNonQuery();
}
```
درج داده (INSERT)
برای افزودن رکورد جدید، از دستور `INSERT` استفاده میشود:
```csharp
string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age);";
using (SQLiteCommand cmd = new SQLiteCommand(insertQuery, conn))
{
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.Parameters.AddWithValue("@Age", 30);
cmd.ExecuteNonQuery();
}
```
خواندن دادهها (SELECT)
برای بازیابی دادهها، از دستور `SELECT` بهره میبریم:
```csharp
string selectQuery = "SELECT * FROM Users;";
using (SQLiteCommand cmd = new SQLiteCommand(selectQuery, conn))
{
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32(0);
string name = reader.GetString(1);
int age = reader.GetInt32(2);
Console.WriteLine($"ID: {id}, Name: {name}, Age: {age}");
}
}
}
```
بهروزرسانی دادهها (UPDATE)
برای تغییر دادههای موجود:
```csharp
string updateQuery = "UPDATE Users SET Age = @Age WHERE Name = @Name;";
using (SQLiteCommand cmd = new SQLiteCommand(updateQuery, conn))
{
cmd.Parameters.AddWithValue("@Age", 31);
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.ExecuteNonQuery();
}
```
حذف رکورد (DELETE)
برای حذف رکوردی خاص:
```csharp
string deleteQuery = "DELETE FROM Users WHERE Name = @Name;";
using (SQLiteCommand cmd = new SQLiteCommand(deleteQuery, conn))
{
cmd.Parameters.AddWithValue("@Name", "Ali");
cmd.ExecuteNonQuery();
}
```
نکات مهم و بهترین شیوههای کار با SQLite در سیشارپ
- همیشه از `using` برای مدیریت منابع استفاده کنید تا اتصالات بسته شوند.
- قبل از اجرای عملیاتهای حساس، از صحت و سلامت دادهها اطمینان حاصل کنید.
- برای عملیاتهای پیچیدهتر، از تراکنشها (`transaction`) بهره ببرید.
- از پارامترها در دستورات SQL استفاده کنید تا از حملات SQL Injection جلوگیری شود.
- در برنامههای بزرگ، ساخت لایههای جداگانه برای مدیریت پایگاه داده، به کاهش خطا و بهبود نگهداری کمک میکند.
در نتیجه، کار با SQLite در سیشارپ، نسبتاً ساده است، اما نیازمند رعایت نکات امنیتی و بهینهسازی است. این راهنما، شروع خوبی برای توسعه برنامههای مبتنی بر پایگاه داده است که نیاز دارند سبک، سریع و قابل حمل باشند. با تمرین و پیادهسازی نمونههای عملی، مهارت خود را در این حوزه افزایش دهید.