如何导入数据库并在xamarin中本地使用它?

时间:2015-04-17 11:29:07

标签: sqlite xamarin xamarin-studio

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

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

我查看了这个教程: 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);
            }
        }
     }

有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

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

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