📜  Windows 10开发-SQLite数据库

📅  最后修改于: 2020-11-18 10:09:15             🧑  作者: Mango


在许多应用程序中,存在某些类型的数据,它们之间具有某种关系。这些类型的数据很难存储在文件中,可以存储在数据库中。

如果您熟悉数据库的类型,例如任何应用程序中的SQL Server或Oracle数据库,那么就很容易理解SQLite数据库

什么是SQLite?

SQLite是一个软件库,可实现独立的,较少服务器,零配置的事务型SQL数据库引擎。

重要功能是-

  • SQLite是世界上部署最广泛的数据库引擎。

  • SQLite的源代码是“开源”。

  • 由于它的便携性和较小的占用空间,它对游戏和移动应用程序开发产生了重大影响。

SQLite的优点

以下是SQLite的优点-

  • 这是一个非常轻量级的数据库。
  • 它是独立于平台的,并且可以在所有平台上运行。
  • 它占用的内存很小。
  • 这是可靠的。
  • 无需任何设置和安装。
  • 它没有依赖性。

要在通用Windows平台(UWP)应用程序中使用SQLite ,您需要执行以下步骤。

  • 创建一个新的通用Windows空白应用程序,名称为UWPSQLiteDemo

  • 转到工具菜单,然后选择扩展和更新。将打开以下对话框。

UWP SQLite演示

  • 选择扩展和更新后,将打开以下窗口。

UWP SQLite扩展和更新

  • 现在,选择Online选项,然后从左窗格中搜索SQLite。

  • 下载并安装通用应用程序平台的SQLite。

  • 现在,再次转到“工具”菜单,然后选择“ NuGet软件包管理器”>“软件包管理器控制台”菜单选项,如下所示。

UWP SQLite管理控制台

  • 在Package Manager控制台中编写以下命令,然后按Enter键以执行此命令-

Install-Package SQLite.Net-PCL 

UWP SQLite控制台命令

  • 现在,在解决方案资源管理器中右键单击“引用” ,然后选择“添加引用”

UWP SQLite添加参考

  • 将打开以下对话框。

UWP SQLite对话框

  • 从“通用Windows”下左窗格中选择“扩展”,在中间窗格中选中“ SQLite for Universal App Platform”,然后单击“确定”。

  • 现在您可以开始在UWP应用程序中使用SQLite了。

您可以使用以下代码创建数据库。

string path = Path.Combine(Windows.Storage.ApplicationData.
   Current.LocalFolder.Path, "db.sqlite"); 

SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new 
   SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

要创建表,您需要使用表名对象调用CreateTable方法。

conn.CreateTable(); 

您可以使用以下代码将数据插入表中。

conn.Insert(new Customer(){
   Name = textBox.Text, 
   Age = textBox1.Text 
});

下面给出的是从表中检索数据的代码。

var query = conn.Table(); 
string id = ""; 
string name = ""; 
string age = ""; 
 
foreach (var message in query) { 
   id = id + " " + message.Id; 
   name = name + " " + message.Name; 
   age = age + " " + message.Age; 
}

让我们通过一个简单的示例了解如何创建数据库,表以及如何从数据库中插入和检索数据。我们将添加Name和age,然后从表中检索相同的数据。下面给出的是XAML代码,其中添加了不同的控件。

 
    
   
      
            
      
            
      
            
      
            
      
            
      
            
      
            
   
    
           

下面给出的是事件和SQLite数据库的C#实现。

using SQLite.Net.Attributes; 

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 

using Windows.Foundation; 
using Windows.Foundation.Collections; 

using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation;  

// The Blank Page item template is documented at 
   http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 
 
namespace UWPSQLiteDemo {
 
   /// 
      /// An empty page that can be used on its own or navigated to within a Frame.
   /// 
    
   public sealed partial class MainPage : Page {
      string path; 
      SQLite.Net.SQLiteConnection conn; 
        
      public MainPage(){
         this.InitializeComponent();  
         path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,
            "db.sqlite"); 
         conn = new SQLite.Net.SQLiteConnection(new 
            SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);  
         conn.CreateTable(); 
      }
        
      private void Retrieve_Click(object sender, RoutedEventArgs e) { 
         var query = conn.Table(); 
         string id = ""; 
         string name = ""; 
         string age = "";  
            
         foreach (var message in query) {
            id = id + " " + message.Id; 
            name = name + " " + message.Name; 
            age = age + " " + message.Age; 
         }
            
         textBlock2.Text = "ID: " + id + "\nName: " + name + "\nAge: " + age; 
      }  
        
      private void Add_Click(object sender, RoutedEventArgs e){ 
       
         var s = conn.Insert(new Customer(){
            Name = textBox.Text, 
            Age = textBox1.Text 
         }); 
            
      } 
   } 
    
   public class Customer {
      [PrimaryKey, AutoIncrement] 
      public int Id { get; set; } 
      public string Name { get; set; } 
      public string Age { get; set; } 
   } 
    
} 

编译并执行上述代码后,您将看到以下窗口。

UWP SQLite执行

输入名称年龄,然后单击添加按钮。

UWP SQLite添加按钮

现在单击检索按钮。您将在“文本块”上看到以下数据。

UWP SQLite检索

ID字段是“主键和自动递增”字段,在“客户”类中指定。

[PrimaryKey, AutoIncrement] 
public int Id { get; set; }