Xamarin的.表单SQLite.net数据执行

本文关键字:数据 执行 net SQLite 表单 Xamarin | 更新日期: 2023-09-27 18:03:43

我有SQLite数据库生成在SQLite浏览器导入Excel文件。它有几张桌子。每个表有相同的结构。

列为:

    年龄
  • 2000
  • 2000 f
  • 2500
  • 2500 f
  • …等。

所有我需要的是打开这个数据库在我的Xamarin。共享项目,每次执行1项

每个单元格包含1个双数字。我需要执行这个数字并将其发送到屏幕上的Label。

我不需要写任何东西到这个数据库。只有阅读。

我能想到的最好的方法是执行SQL:

Select 2000m From Bravo Where Age = 20.
有人能帮我一下吗?

Xamarin的.表单SQLite.net数据执行

所以问题出在Windows Phone上。不知何故,它不能启动SQLiteConnection。但是Android有,所以iOS也必须如此。

首先,我将我的DB移动到应用程序的本地路径:

 public static string GetLocalFilePath(string filename)
        {
            string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            string dbPath = Path.Combine(path, filename);
            CopyDatabaseIfNotExists(dbPath);
            return dbPath;
        }
        private static void CopyDatabaseIfNotExists(string dbPath)
        {
            if (!File.Exists(dbPath))
            {
                using (var br = new BinaryReader(Application.Context.Assets.Open("KDLife_mobileDB.db3")))
                {
                    using (var bw = new BinaryWriter(new FileStream(dbPath, FileMode.Create)))
                    {
                        byte[] buffer = new byte[2048];
                        int length = 0;
                        while ((length = br.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            bw.Write(buffer, 0, length);
                        }
                    }
                }
            }
        }
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            global::Xamarin.Forms.Forms.Init (this, bundle);
            global::Xamarin.FormsMaps.Init(this, bundle);
            string dbPath = GetLocalFilePath("KDLife_mobileDB.db3");
            LoadApplication (new KDLife_mobile.App ());
            App.ScreenWidth = (int)Resources.DisplayMetrics.WidthPixels;
            App.ScreenHeight = (int)Resources.DisplayMetrics.HeightPixels;

        }

Then i open connection:

public SQLiteConnection DBClass_conn()
        {
            database = new SQLiteConnection (DatabasePath);
            return database;
        }

然后我添加了SQLiteCommand:

SQLiteCommand cmd = new SQLiteCommand(App.Database.DBClass_conn());

和查询:

public string querytext(string q_table)
        {
            string sql = "SELECT '"2000f'" FROM Bravo WHERE Age = '"20'" AND Period = '"15'"";//, App.amount_gender, q_table, App.age;
            return sql;
        }

然后我只需改变CommandText和ExecuteScalar:

cmd.CommandText = querytext("Symphony");
string count = (string)cmd.ExecuteScalar<string>();

现在它只执行一个查询,但要使它更通用并不难。