【问题标题】:How to create tables in sqlite without coding for Android application using xamarin如何在 sqlite 中创建表而不使用 xamarin 为 Android 应用程序编码
【发布时间】:2016-11-30 03:20:42
【问题描述】:

我想为 Hospitality POS 开发一个 Android 应用程序。我正在使用 xamarin 和 sqlite 数据库。我以编程方式创建了一个表。

我的问题是:如何在不进行编码的情况下创建表:就像我们在 SQL Server 中手动创建而不进行编码一样,有什么方法可以在不进行编码的情况下创建表。

我使用 SQLite Studio 创建了数据库和表,但无法在我的应用程序中查看这些表。

【问题讨论】:

  • 不用编码就建表?你是什​​么意思?你不想写c#来创建表? “就像我们用来在 sql server 中手动创建而不进行编码一样”是什么意思?您的意思是使用 SQL 脚本吗?
  • 是的,我不想写 c# 来创建表。我想简单的解决方案,我可以手动创建表

标签: android database sqlite xamarin


【解决方案1】:

如果您使用 xamarin 并且想要一个可移植的数据库,请查看 https://developer.xamarin.com/guides/xamarin-forms/working-with/databases/,您必须在每个项目 .Droid .IOS .Windows 中添加一个类,以根据平台正确获取每个 dbPath。

要查看您的表,您必须创建一个代表这些表的类,以从 db 获取信息到链接中的应用程序,我放弃了所有指定的链接。

此外,在 SQLite 中,当未调用 SQLiteConnection.createDatabase();您正在创建连接时指定的数据库文件中创建表,如果不存在,如果存在并且没有错误,您只是在确认您与数据库连接。希望我有所帮助。

【讨论】:

    【解决方案2】:

    如果您没有经验,但想要实现 localdb,我推荐使用 ORM。 Sugar ORM 使用起来非常简单,而且很好。有关如何使用它的示例很容易理解。

    http://satyan.github.io/sugar/

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      您可以使用sqlitebrowser 创建表,然后将您的 sqlite 文件添加到您的 Android 项目中的资产文件夹中。

      我认为您需要将其复制出来以打开数据库并对其进行编辑,如下所示:

      static void CopyDatabaseIfNotExists (string dbName = "YOURDATABASENAME.sqlite")
      {
        var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), dbName);
          if (!File.Exists(dbPath))
          {
              using (var br = new BinaryReader (Application.Context.Assets.Open (dbName)))
              {
                  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);
                      }
                  }
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-08
        • 2019-11-18
        • 1970-01-01
        相关资源
        最近更新 更多