شاید برای شما هم پیش اومده باشه که بخواهید توی برنامه هایی که تحت دسکتاپ مینویسید از یه دیتابیس برای ذخیره سازی اطلاعات استفاده کنید
خب ، معمولا چند گزینه رایج جلوی پای برنامه نویسا وجود داره: MS Access، SQL Server و ...
یکی دیگه از بانک های اطلاعاتی که برنامه نویسا میتونن توی desktop application ها ازش استفاده کنن، SQLite هست.
" SQLite یک پایگاه داده کوچک (حجمی در حدود 500 KB) که به زبان C در قالب یک کتابخانه (Library) نوشته شده است و از پایگاه دادههای RDBMS به حساب میآید. این پایگاه داده بدون لیسانس (Public Domain) ، آزاد و open source منتشر میشود. مزیت: پایگاه دادهای تک فایلی با حجم کم و عدم وابستگی به سیستم عامل. دارای محیط مدیریتی خوب که تمامی امکانات آن را پوشش میدهند. تنها مشکل بزرگ عدم پشتیبانی از تمامی امکانات استاندارد sql هست که ضعف بزرگ اون محسوب میشود." - ویکی پدیای فارسی
و توضیح خود گروه SQLite:
" SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain."
از اونجایی که توی این مقاله قصد معرفی خاصیت ها و قابلیت های SQLite رو ندارم، جهت بدست آوردن اطلاعات اولیه در مورد این دیتابیس، دوستان رو به لینک زیر ارجاع میدم:
فقط دوست دارم به این مسئله اشاره کنم که در حال حاضر توی پروژه های زیر از این دیتابیس استفاده میشه:
"Mozilla Firefox and Mozilla Thunderbird store a variety of configuration data (bookmarks, cookies, contacts etc.) in internally managed SQLite databases. Skype is another widely deployed application that uses SQLite.[16] Adobe Systems uses SQLite as its file format in Adobe Photoshop Lightroom, a standard database in Adobe AIR and internally within Adobe Reader.[17] Due to its small size, SQLite is well suited to embedded systems, and is also included in Apple's iPhone OSSymbian OS, Google's Android, RIM's BlackBerry and Palm's webOS.[18] " (where it is used for the SMS/MMS, Calendar, Call history and Contacts storage),
و اما نحوه استفاده از SQLite در پروژه های دات نت:1- اولین کار، دانلود فایل اسمبلی SQLite.net هست. فایل رو میتونید از اینجا دانلود کنید
( از اونجایی که سایت Sourceforge.net ، اجازه دانلود به IP های ایران رو نمیده، شما باید از آنتی فیلتر یا پراکسی سرور استفاده کنید.)
2- فایل System.Data.SQLite.dll رو به reference های خودتون اضافه کنید
چند نمونه سورس کد:
- گرفتن اطلاعات و ریختن اون توی یه DataTable :
- گرفتن اطلاعات و ریختن اون توی یه DataTable :
private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private SQLiteDataAdapter DB;
private DataSet DS = new DataSet();
private DataSet DS_Info = new DataSet();
private DataTable DT = new DataTable();
sql_con = new SQLiteConnection("Data Source=db.data;Version=3;New=false;Compress=true;");
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
DB = new SQLiteDataAdapter(query, sql_con);
DS.Reset();
DB.Fill(DS);
DT = DS.Tables[0];
sql_con.Close();
- افزودن یا آپدیت دیتا در دیتابیس:
- و این هم یک نمونه دیگه:
public static int ExecuteNonQuery(string sql){ SQLiteConnection cnn = new SQLiteConnection("Data Source=C:CheckoutWorldDominator.s3db"); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn); mycommand.CommandText = sql; int rowsUpdated = mycommand.ExecuteNonQuery(); cnn.Close(); return rowsUpdated; }- و این هم یک نمونه دیگه:
public static string ExecuteScalar(string sql) { SQLiteConnection cnn = new SQLiteConnection("Data Source=C:CheckoutWorldDominator.s3db"); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn); mycommand.CommandText = sql; object value = mycommand.ExecuteScalar(); cnn.Close(); if (value != null) { return value.ToString(); } return ""; }امنیت :
نکته ای که باید دوستان بهش توجه کنن، امنیت دیتابیس هست. از اونجایی که تمام دیتابیس داخل کامپیوتر کاربر کپی میشه. پس هر کسی میتونه به یا برنامه SQLite Manager به اطلاعات داخل دیتابیس دسترسی داشته باشه.
یکی از روش هایی که برای جلوگیری از این کار پیش بینی شده، گذاشتن password روی دیتابیس هست.
گذاشتن پسورد روی دیتابیس به طریق زیر انجام می شه :
(توجه داشته باشید که کد زیر رو فقط برای بار اول باید اجرا کرد)
setConnection();
sql_con.SetPassword("mypassword");
sql_con.Open();
برای دسترسی به دیتابیسی که password داره، باید از سورس زیر استفاده کرد:
sql_con.ChangePassword("mypassword");
sql_con.Open();
سعی میکنم، هر دفعه کمی این مقاله رو آپدیت کنم. تا یه مرجع خوبی بشه برای دوستانی که قصد دارن کار با این دیتابیس رو شروع کنند.
موفق باشید.
