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

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

این آموزش در قالب 6 پست آموزشی در جهت آموزش هرچه تمام تر برنامه نویسی بانک اطلاعات در سی شارپ تهیه شده است.

  • بخش اول نصب کتابخانه و ایجاد ساختار اولیه بانک اطلاعات
  • بخش دوم شامل تابع ایجاد یک رکورد جدید
  • بخش سوم شامل نمایش اطلاعات رکورد ها
  • بخش چهارم نمایش اطلاعات در یک Datagridview1
  • بخش پنجم جستجو (استفاده از دستور where و like در جستجو Sqlite)
  • بخش ششم شامل ذخیره سازی دیتا به صورت csv

در این مجموعه آموزش قصد داریم تا پروژه دفترچه تلفن را به زبان سی شارپ و با استفاده از کتابخانه پرقدرت و البته خیلی سبکه Sqlite پیش ببریم، با ما همراه باشید.

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


بریم سراغ آموزش:

اولین کار این است که پکیج مورد نیاز را به پروژه‌ اضافه کنیم. برای اینکار در Visual Studio و در قسمت Manage NuGet Packages  عبارت Microsoft.Data.Sqlite را جستجو و و نصب می نماییم.
 
پس از نصب پکیج و کتابخانه مورد نظر، نیاز است تا قالب بانک اطلاعاتی را ایجاد کنیم، در واقع یک تابع به اصطلاح init نیاز داریم تا بانک ایجاد بشود (به صورت فیزیکی و در کنار برنامه).
براساس پروژه ای که انتخاب کردیم(دفترچه تلفن)، چیزهایی که نیاز به ذخیره سازی دارند می توانند شامل نام، نام خانوادگی و درنهایت شماره تماس باشد، پس قبل از کد نویسی باید بدانیم در بانک چه چیزهایی را قرار است ذخیره سازی کنیم:
  • Id: یک عدد که خودش به صورت خودکار یکی یکی زیاد بشه.
  • FirstName: نام
  • LastName: نام خانوادگی
  • PhoneNumber: شماره تماس (که هم نباید خالی باشه و هم باید یونیک باشه، یعنی دو نفر نمی‌توانند یک شماره داشته باشند).
نکته ها:
  • دربانک های اطلاعات معمولا همیشه از یک ID به عنوان شماره ردیف استفاده می شود که از نوع int (عدد) است و به صورت خودکار مقدار دهی می شود، یعنی هربار که یک رکورد جدید ایجاد می شود به صورت خودکار مقدار می گیرد و نیازی به تعریف مقدار در زمان ایجاد رکورد نیست.
  • نام و نام خانوادگی رو هم می شود به صورت جداگانه (2 فیلد) در نظر گرفت و هم می شود به صورت یکجا درنظر گرفته که بهتر است جداگانه باشند
  • فیلد های مربوط به نام و نام خانوادگی همیشه از نوع رشته یا String هستند که در بانک های اطلاعاتی از نوع TEXT در نظر گرفته می شود
  • فیلد شماره موبایل، می تواند از نوع عدد باشد ولی بهتر است برای جلوگیری از هرگونه اشتباه و خطا آن را نیز از نوع TEXT در نظر گرفته زیرا ممکنه است که کاربر بخواهد از کاراکتر هایی مانند (98+) یا (4567-123-0912) و یا حالت های مختلف دیگر استفاده نماید.
  • نکته به شدت حیاتی اینکه یک شماره تماس مانند کد ملی است و مطلقا می تواند برای یک نفر استفاده شود، برای این منظور باید آن را از نوع Uniqe درنظر گرفت تا کاربر نتواند یک شماره را به چند نفر نسبت دهد.
  • برای دقت بالاتر نیز می توان شرطی هنگام ایجاد بانک (init) در نظر گرفته مبنی بر اینکه فیلدهای شماره تماس و فیلد نام نمی توانند خالی باشند و حتما باید کاربر مقداری برای آن ها در نظر بگیرد.

using Microsoft.Data.Sqlite;

public void InitDatabase()
{
    // مسیر فایل دیتابیس ما (کنار فایل اجرایی برنامه ساخته میشه)
    string connectionString = "Data Source=PhoneBook.db";
    
    using var connection = new SqliteConnection(connectionString);
    connection.Open();

    string createTableQuery = @"
        CREATE TABLE IF NOT EXISTS Contacts (
            Id INTEGER PRIMARY KEY AUTOINCREMENT,
            FirstName TEXT NOT NULL,
            LastName TEXT NOT NULL,
            PhoneNumber TEXT UNIQUE NOT NULL
        )";

    using var command = new SqliteCommand(createTableQuery, connection);
    command.ExecuteNonQuery();
    
    Console.WriteLine("دیتابیس با موفقیت آماده شد!");
}

همونطور که می‌بینید، IF NOT EXISTS باعث میشه اگه برنامه را صد بار هم اجرا کردیم، خطای "جدول تکراریه" نگیریم. AUTOINCREMENT هم خیال ما را راحت می‌کند که Id ها خودکار پر می شوند.
کد ارائه شده بالا، یک ساختار اولیه برای ایجاد بانک اطلاعات است. با اجرای این تابع یک بانک اطلاعات در کنار مسیر برنامه با نام PhoneBook.db ایجاد می شود که مشاهده اطلاعات درون آن، بدون برنامه مخصوص به خود امکان پذیر نیست!
 
بهترین برنامه برای مشاهده بانک های اطلاعات Sqlite: نرم افزار DB Browser است که قابلیت نصب به صورت پرتابل و نصب کامل را دارد

لینک وب سایت و دانلود نرم افزار

 
 
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران