با گسترش گوشی ها هوشمند، نیاز به استفاده از پایگاه داده در گوشی ها نیز از همان اول وجود داشت. اما مشکلاتی بر سر راه استفاده از پایگاه داده های کامپیوترها در گوشی ها وجود داشت که از آن میان می توان به حجم بالای این پایگاه داده ها اشاره کرد. شرکت های تولید کننده گوشی ها، برای خود پایگاه داده ای طراحی می کردند که بتوانند از آن در محصولات خود استفاده نمایند. اما با گسترش سیستم عامل ها برای گوشی ها و افزایش ظرفیت و سرعت گوشی ها، پایگاه داده هایی طراحی شدند که از پایگاه داده های بزرگ الهام گرفته بودند. از این میان می توان به پایگاه داده SQLite اشاره کرد که برای اولین بار برای استفاده در سیستم عامل اندروید طراحی شد.
پایگاه داده SQLite کم حجم شده MySQL می باشد که برای گوشی های هوشمند استفاده می شود. بنابراین به خودی خود در #C وجود ندارد و باید کتابخانه های آن به پروژه افزوده شود. پایگاه داده SQLite دارای مقادیر داده ای محدودی می باشد و مانند MySQL قدرتمند نیست ولی در کاربردهای کم حجم استفاده فراوان دارد مانند استفاده در گوشی ها به خاطر حافظه محدود گوشی ها.
برای استفاده از SQLite در Visual Studio اول از همه کتابخانه ی SQLite را به آن اضافه می کنیم. برای این کار، اول پروژه جدید ایجاد نمایید سپس از طریق NuGet در قسمت جستجو کلمه sqlite را تایپ کرده و کتابخانه System.Data.SQLite را دانلود نمایید.
در فرم برنامه دکمه های زیر را ایجاد می کنیم
btnCreate برای ایجاد پایگاه داده می باشد.
btnCreateTable برای ایجاد جدول می باشد.
btnInsertData برای وارد کردن داده به جدول می باشد.
btnReadData برای خواندن داده ها از جدول می باشد.
btnCreate
private void btnCreate_Click(object sender, EventArgs e) { SQLiteConnection.CreateFile("MyDatabase.sqlite"); }
در رویداد دکمه پایگاه داده SQLite با نام MyDatabase را ایجاد می کنیم. پسوند پایگاه داده sqlite می باشد.
نکته: پسوند پایگاه داده SQLite در طی نسخه های این پایگاه داده عوض شده است اما همچنان می توان از نسخه های قبلی نیز استفاده کرد. مانند db به جای sqlite.
btnCreateTable
private void btnCreateTable_Click(object sender, EventArgs e) { SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"); m_dbConnection.Open(); string sql = "create table highscores (name varchar(20), score int)"; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); m_dbConnection.Close(); }
در این قسمت با پایگاه داده ایجاد شده ارتباط برقرار کرده و سپس جدول را ایجاد می کنید. جدول highscores شامل دو ستون به نام های name با نوع داده ای varchar(20) و score با نوع داده ای int می باشد.
در هنگام ایجاد جدول، اگر پایگاه داده موجود نباشد، پایگاه داده را خودش ایجاد می کند.
نکته ای که در مورد ارتباط با پایگاه داده می باشد این است که در هر بار باز کردن پایگاه داده، بعد از اتمام کار آن را می بندیم.
btnInsertData
private void btnInsertData_Click(object sender, EventArgs e) { SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"); m_dbConnection.Open(); string sql = "insert into highscores (name, score) values ('Me', 3000)"; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); m_dbConnection.Close(); }
در این قسمت داده ای را به جدول اضافه می کنیم که با مقادیر Me برای name و 3000 برای score می باشد.
btnReadData
private void btnReadData_Click(object sender, EventArgs e) { SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"); m_dbConnection.Open(); string sql = "select * from highscores order by score desc"; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); SQLiteDataReader reader = command.ExecuteReader(); string message = ""; while (reader.Read()) message+="Name: " + reader["name"] + "\tScore: " + reader["score"]+"\n"; MessageBox.Show(message); m_dbConnection.Close(); }
در این قسمت، بعد از ارتباط با پایگاه داده SQLite، با استفاده از کوئری ای که رکوردها را بر اساس امتیاز (score) مرتب می کند، داده ها را استخراج کرده و رکوردها را یکی یکی با استفاده از Reader خوانده و در MessageBox نمایش می دهیم.
برای ایجاد و کار با پایگاه داده SQLite نرم افزارهای متعددی وجود دارد که از آن میان می توان به DB Browser اشاره کرد که هم کم حجم می باشد و هم رابط کاربری خوبی نسبت به بقیه دارد که می توانید آن را از اینجا دانلود نمایید. این نرم افزار علاوه بر نرم افزار، افزونه ای هم برای FireFox دارد.