android شرح - استخدم قاعدة بيانات محلية في Xamarin




xamarin.android download (2)

بعد التفكير في ذلك كان شيئًا تافهًا ، ثبتت صوابي عندما حاولت إعداد مشروع اختبار سريع. سيحتوي هذا المنشور على برنامج تعليمي كامل حول إعداد قاعدة بيانات لتطبيق Android في Xamarin والذي سيكون مفيدًا كمرجع لمستخدمي Xamarin في المستقبل.

في لمحة:

  1. إضافة Sqlite.cs إلى المشروع الخاص بك.
  2. أضف ملف قاعدة البيانات الخاص بك كأصل.
  3. قم بتعيين ملف قاعدة البيانات الخاص بك لإنشاء AndroidAsset.
  4. قم بنسخ ملف قاعدة البيانات يدويًا من ملف apk إلى دليل آخر.
  5. افتح connetion قاعدة البيانات باستخدام Sqlite.SqliteConnection.
  6. تعمل على قاعدة البيانات باستخدام Sqlite.

إعداد قاعدة بيانات محلية لمشروع Xamarin Android

1. أضف Sqlite.cs إلى مشروعك.

ابدأ بالذهاب إلى هذا المستودع وتنزيل Sqlite.cs؛ هذا يوفر Sqlite API التي يمكنك استخدامها لتشغيل الاستعلامات مقابل db الخاص بك. أضف الملف إلى مشروعك كملف مصدر.

2. إضافة DB كأصل.

بعد ذلك ، احصل على قاعدة بياناتك وانسخها إلى دليل الأصول في مشروع Android ثم استوردها في مشروعك بحيث يظهر أسفل مجلد الأصول ضمن الحل:

أنا باستخدام نموذج قاعدة البيانات Chinook_Sqlite.sqlite إعادة تسميته إلى db.sqlite من هذا الموقع طوال هذا المثال.

3. تعيين DB لبناء AndroidAsset.

انقر بزر الماوس الأيمن على ملف DB وتعيينه لبناء عمل AndroidAsset . سيضمن ذلك تضمينه في دليل أصول APK.

4. نسخ DB يدويا من APK الخاص بك.

بما أن قاعدة البيانات مضمنة كموجودات (يتم وضعها داخل حزمة APK) ، فستحتاج إلى استخراجها.

يمكنك القيام بذلك باستخدام الكود التالي:

string dbName = "db.sqlite";
string dbPath = Path.Combine (Android.OS.Environment.ExternalStorageDirectory.ToString (), dbName);
// Check if your DB has already been extracted.
if (!File.Exists(dbPath))
{
    using (BinaryReader br = new BinaryReader(Android.App.Application.Context.Assets.Open(dbName)))
    {
        using (BinaryWriter bw = new BinaryWriter(new FileStream(dbPath, FileMode.Create)))
        {
            byte[] buffer = new byte[2048];
            int len = 0;
            while ((len = br.Read(buffer, 0, buffer.Length)) > 0)
            {
                bw.Write (buffer, 0, len);
            }
        }
    }
}

يقوم هذا باستخراج DB كملف ثنائي من APK ووضعه في مسار التخزين الخارجي للنظام. في الواقع ، يمكن أن يذهب DB إلى أي مكان تريده ، لقد اخترت فقط التمسك به هنا.

قرأت أيضا أن الروبوت يحتوي على مجلد قواعد البيانات التي ستخزن قواعد البيانات مباشرة ؛ لم أتمكن من الحصول على عمل لذلك أنا فقط ركضت مع هذه الطريقة من استخدام قاعدة بيانات موجودة.

5. افتح اتصال DB.

الآن افتح اتصال إلى DB من خلال فئة Sqlite.SqliteConnection:

using (var conn = new SQLite.SQLiteConnection(dbPath))
{
        // Do stuff here...
}

6. تعمل على DB.

أخيرًا ، نظرًا لأن Sqlite.net هو ORM ، يمكنك العمل على قاعدة البيانات باستخدام أنواع البيانات الخاصة بك:

public class Album
{
    [PrimaryKey, AutoIncrement]
    public int AlbumId { get; set; }
    public string Title { get; set; }
    public int ArtistId { get; set; }
}

// Other code...

using (var conn = new SQLite.SQLiteConnection(dbPath))
{
    var cmd = new SQLite.SQLiteCommand (conn);
    cmd.CommandText = "select * from Album";
    var r = cmd.ExecuteQuery<Album> ();

    Console.Write (r);
}

ملخص

وهذا هو كيفية إضافة قاعدة بيانات Sqlite القائمة إلى حل Xamarin الخاص بك لالروبوت! لمزيد من المعلومات ، راجع examples المضمنة في مكتبة Sqlite.net واختبارات الوحدة الخاصة بها examples في وثائق Xamarin.

لقد بدأت في استخدام البرنامج المساعد Xamarin لـ Visual Studio لإنشاء تطبيق Android.

لدي قاعدة بيانات SQL محلية ، وأريد أن أسميها لعرض البيانات. لا أرى كيف يمكنني القيام بذلك. هل هو ممكن؟


يمكنك إنشاء emulator.bat باستخدام الأمر التالي لبدء محاكي. وسوف تبدأ بشكل أسرع.

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

أو على يونكس (ماك أو لينكس النكهات):

emulator -cpu-delay 0 -no-boot-anim @<avd name>




android xamarin.android xamarin