【问题标题】:how to import database and use it locally in xamarin?如何在 xamarin 中导入数据库并在本地使用它?
【发布时间】:2015-06-24 05:33:19
【问题描述】:

我有数据库,我想在我的项目中导入它,首先我在我的项目中添加了一个 SQLITe 组件并将我的数据库插入到资产文件夹中。

我看到的所有示例都是关于如何在项目中创建数据库,但我已经有了数据库,我想进行一些查询以在我的应用程序中显示它。

我查看了本教程: Use a local database in Xamarin

但它不起作用!

这是我的代码:

    void conndb ()
    {
        string dbName = "Chinook_Sqlite.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(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);
                    }
                }

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

                Console.Write (r);
            }
        }
     }

有什么帮助吗?

【问题讨论】:

  • “但它不起作用” - 这是什么意思?您是否收到错误或异常?它不会编译吗?
  • 是的,我可以构建和编译我的应用程序,但是在我的模拟器中运行它时,我的应用程序崩溃了
  • 嗯,它在哪一行崩溃了?您是否尝试对其进行调试以跟踪错误?
  • 我在此方法中添加了尝试并给了我一个异常...我如何追踪它?
  • 你遇到了什么异常?您是否尝试过在调试器中逐行执行代码以查找导致异常的特定行?您还可以查看异常对象中的堆栈跟踪以找到错误的来源。

标签: sqlite xamarin xamarin-studio


【解决方案1】:

您需要使用文件资源管理器将您的 SQLite DB 上传到您的 Android 设备。您将需要使用 Android Studio,我不相信 Xamarin Studio 具有等效工具。

如果您从 Android Studio 启动 Monitor(工具栏上的绿色机器人图标,在帮助图标的左侧),您可以选择文件资源管理器选项卡。您应该能够将您的 DB 文件上传到您在 Xamarin C# 代码中调用的位置。

【讨论】:

    猜你喜欢
    • 2013-09-13
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多