مرجع تخصصی زبان Csharp
جستجو

بانک اطلاعات Sqlite در سی شارپ - بخش دوم

پست دوم: اضافه کردن مخاطب جدید به دیتابیس

در بخش قبل (مشاهده بخش اول) با نصب کتابخانه و پکیج، ایجاد ساختار اولیه (فیلد های مورد نیاز) و شکل ایجاد یک جدول  آشنا شدیم، در این بخش قصد داریم تا نحوه ایجاد یک تابع برای ایجاد یک رکورد جدید و ذخیره سازی اطلاعات آشنا بشیم.


 
برای اضافه کردن (Insert) اطلاعات، از متد 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) و هم از خطاهای اضافه جلوگیری کنیم.
 
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران