در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
در سیستم عامل ویندوز فون نیز از پایگاه داده مرسومی که پیش از این در سیستمهای عامل موبایل مایکروسافت استفاده میشد، بهره گرفته میشود؛ یعنی SQL Server CE یا SQL Server Compact Edition، این پایگاه داده به صورت فایل است و برای دسترسی به دادههای آن به مانند SQL Server نیاز به یک سرویس نیست. شما از یکسری API سطح پایین که مایکروسافت برای کار با این پایگاه داده در اختیار شما قرار داده، استفاده میکنید. این API به صورت درونی در سیستم عامل موجود است. نکتهای که در اینجا باید به آن دقت داشت این است که خود این پایگاه داده در سطح پایین نیز از همان Isolated Storage استفاده میکنند.
آیا در سیستم عامل اندروید میتوان از SQL Server CE استفاده کرد؟ جواب خیر است، چراکه API آن برای سیستم عامل اندروید موجود نیست.
اما شما میتوانید SQLite را در ویندوزفون استفاده کنید! از آنجا که این پایگاه داده به صورت فایل است، یکسری API برای دسترسی به دادههای موجود در آن طراحی و توسعه داده شده است و شما میتوانید براحتی با اضافه کردن آنها به پروژه خود از این پایگاه داده استفاده کرده و به سهولت پایگاه دادههایی مشترک برای هر دو سیستم عامل طراحی کنید.در مورد نحوه ذخیره و بازیابی اطلاعات در پایگاه داده SQLite در سیستم عامل اندروید در شمارههای پیش توضیحاتی ارائه شدهاست. در این شماره قصد داریم در مورد ذخیره و بازیابی در پایگاه دادههای موجود در ویندوزفون بحث کنیم.
ویندوزفون از LINQ to SQL برای دسترسی به دادهها استفاده میکند. این محصول به صورت یکORM عمل میکند و شما از شمای پایگاه داده خود یکسری مدل با روابط مشخص (روابط موجود بین جدولهای شما) طراحی میکنید و توسط اشیایی که LINQ to SQL در اختیار شما قرار میدهد میتوانید ذخیره و بازیابی اطلاعات در پایگاه داده خود را مدیریت کنید.
روش کار همانند همان روشی است که پیش از این در LINQ to SQL آموختیم؛ ابتدا مدلهای خود که یکسری کلاس متناظر با هر جدول در پایگاه داده بوده و ویژگیهای آنها که هر کدام متناظر با یک فیلد در جدول مورد نظر است تولید میکنیم. به طور مثال جدول زیر را در پایگاه داده داریم:
TABLE Customer (Id primary Key, Name, Company Name)
ابتدا باید متناظر با این جدول یک کلاس تولید کنیم، به صورت زیر:
[Table]
public class Customer
{ [Column(IsPrimaryKey = true)]
public int Id {get; set; }
[Column]
public string Name { get; set; }
[Column]
public string CompanyName { get; set; }
بسیار خب، سپس نوبت به اضافه کردن یک کلاس DataContext میرسد که بتواند عملیات ذخیره و بازیابی اطلاعات را انجام دهد.
public class CustomerCtx: DataContext{
public CustomerCtx(string conStr):
base(conStr){ }
public Table«Customer» Customers { get; set; }}
حالا میرویم سراغ مدیریت دادهها؛ به کد زیر دقت کنید:
var dbo = new CustomerCtx();
if(!dbo.DatabaseExists())
dbo.CreateDatabase();
Customer customer = new Customer();
customer.Id = 1;
customer.Name = "Click!";
customer.CompanyName = "Jamejam";
dbo.Customers.InsertOnSubmit(customer);
dbo.SubmitChange();
foreach(Customer _customer in db.Customers
.Where(c =» c.Id == 1)){
_customer.Name = "Test";}
dbo.SubmitChange();
dbo.Customers.DeleteOnSubmit(customer);
ابتدا یک شیء از کلاس CustomerCtx ایجاد میکنیم، سپس مورد بررسی قرار میدهیم. اگر پایگاه داده مورد نظر وجود نداشت آن را ایجاد کنید، پایگاه داده را براساس مدلهایی که ما تعریف کردهایم ایجاد میکند.
در مرحله بعد یک شیء از کلاس Customer ایجاد و ویژگیهای آن را مقداردهی میکنیم. سپس آن را به وسیله ویژگی Customers کلاس CustomerCtx آماده برای درج در پایگاهداده میکنیم. با فراخوانی متد SubmitChange کلاس CustomerCtx تغییرات موجود در Customers را که هم درج، هم حذف و ویرایش است، در پایگاهداده خود انجام میدهیم.در خط بعدی به وسیله متد Where که یک Extension Method است، در دادههای موجود در پایگاه داده دنبال مشتری میگردیم که شماره مشتری آن یک باشد، سپس نام آن را به Test تغییر میدهیم و با فراخوانی متد SubmitChange تغییرات را اعمال میکنیم.
در خط بعدی به وسیله متد DeleteOnSubmit شیء Customerکه ایجاد کرده بودیم را از پایگاه داده حذف میکنیم. در نهایت هم با فراخوانی متد SubmitChange تغییرات را در پایگاه داده اعمال میکنیم.
سعی شد در این مثال 4 عمل اصلی برای کار با دادهها نمایش داده شود، برای اطلاع بیشتر در مورد این موضوع میتوانید به لینک زیر مراجعه کنید:
http://msdn.microsoft.com/en-us/library/hh286405(v=vs.92).aspx
امیر بهاءالدین سبط الشیخ
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: