پست دوم: اضافه کردن مخاطب جدید به دیتابیس
در بخش قبل (مشاهده بخش اول) با نصب کتابخانه و پکیج، ایجاد ساختار اولیه (فیلد های مورد نیاز) و شکل ایجاد یک جدول آشنا شدیم، در این بخش قصد داریم تا نحوه ایجاد یک تابع برای ایجاد یک رکورد جدید و ذخیره سازی اطلاعات آشنا بشیم.
ExecuteNonQuery استفاده میکنیم. یک نکته خیلی مهم در برنامهنویسی دیتابیس این است که هیچوقت مقادیر رو مستقیم در رشته SQL نچسبانید. و همیشه از پارامتر (@ParamName) استفاده کنید. این کار هم کدتان را تمیز میکند (Clean code)، و نیز از باگهای عجیب و غریب و هک شدن (SQL Injection) جلوگیری می نماید.public void AddContact(string firstName, string lastName, string phoneNumber)
{
string connectionString = "Data Source=PhoneBook.db";
using var connection = new SqliteConnection(connectionString);
connection.Open();
// استفاده از @ برای پارامترها
string insertQuery = @"
INSERT INTO Contacts (FirstName, LastName, PhoneNumber)
VALUES (@fname, @lname, @phone)";
using var command = new SqliteCommand(insertQuery, connection);
// مقداردهی به پارامترها
command.Parameters.AddWithValue("@fname", firstName);
command.Parameters.AddWithValue("@lname", lastName);
command.Parameters.AddWithValue("@phone", phoneNumber);
int result = command.ExecuteNonQuery();
if (result > 0)
Console.WriteLine("مخاطب با موفقیت اضافه شد.");
else
Console.WriteLine("خطایی در ذخیره سازی رخ داد.");
}
PhoneNumber رو UNIQUE تعریف کردیم، اگه بخواید شماره تکراری وارد کنید، خود SQLite جلوش رو میگیره و خطا میده که هم باید خطای اون رو مدیریت کنیم (استفاده از try) و هم از خطاهای اضافه جلوگیری کنیم.