Windows 10 개발-SQLite 데이터베이스

많은 애플리케이션에는 서로 어떤 종류의 관계가있는 특정 유형의 데이터가 있습니다. 파일에 저장하기 어려운 이러한 유형의 데이터는 데이터베이스에 저장할 수 있습니다.

모든 애플리케이션의 SQL 서버 또는 Oracle 데이터베이스와 같은 데이터베이스 유형에 익숙하다면 이해하기가 매우 쉽습니다. SQLite database.

SQLite 란 무엇입니까?

SQLite는 자체 포함, 서버리스, 제로 구성, 트랜잭션 SQL 데이터베이스 엔진을 구현하는 소프트웨어 라이브러리입니다.

중요한 기능은-

  • SQLite는 세계에서 가장 널리 배포 된 데이터베이스 엔진입니다.

  • SQLite의 소스 코드는 오픈 소스입니다.

  • 이식성과 작은 설치 공간으로 인해 게임 및 모바일 애플리케이션 개발에 큰 영향을 미쳤습니다.

SQLite의 장점

다음은 SQLite의 장점입니다-

  • 매우 가벼운 데이터베이스입니다.
  • 플랫폼에 독립적이며 모든 플랫폼에서 작동합니다.
  • 메모리 공간이 적습니다.
  • 신뢰할 수 있습니다.
  • 설정 및 설치가 필요 없습니다.
  • 종속성이 없습니다.

쓰다 SQLite UWP (유니버설 Windows 플랫폼) 애플리케이션에서 아래에 제공된 단계를 따라야합니다.

  • 이름으로 새 유니버설 Windows 빈 앱 만들기 UWPSQLiteDemo.

  • 다음으로 이동 Tools메뉴에서 확장 및 업데이트를 선택합니다. 다음 대화 상자가 열립니다.

  • 확장 및 업데이트를 선택하면 다음 창이 열립니다.
  • 이제 Online 옵션을 선택하고 왼쪽 창에서 SQLite를 검색하십시오.

  • 범용 앱 플랫폼 용 SQLite를 다운로드하고 설치합니다.

  • 이제 도구 메뉴로 다시 이동하여 NuGet Package Manager > Package Manager Console 메뉴 옵션은 아래와 같습니다.

  • 패키지 관리자 콘솔에 다음 명령을 작성하고 Enter를 눌러이 명령을 실행하십시오.

Install-Package SQLite.Net-PCL
  • 이제 오른쪽 클릭 References 솔루션 탐색기에서 Add References.

  • 다음 대화 상자가 열립니다.
  • 고르다 Extensions 왼쪽 창에서 Universal Windows, 중간 창에서 유니버설 앱 플랫폼 용 SQLite를 선택하고 확인을 클릭합니다.

  • 이제 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<Customer>();

다음 코드를 사용하여 테이블에 데이터를 삽입 할 수 있습니다.

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

다음은 테이블에서 데이터를 검색하는 코드입니다.

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

간단한 예제를 통해 데이터베이스, 테이블을 만드는 방법과 데이터베이스에서 데이터를 삽입하고 검색하는 방법을 이해하겠습니다. 이름과 나이를 추가 한 다음 테이블에서 동일한 데이터를 검색합니다. 다음은 다른 컨트롤이 추가 된 XAML 코드입니다.

<Page 
   x:Class = "UWPSQLiteDemo.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:local = "using:UWPSQLiteDemo" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d"> 
	
   <Grid Background = "{ThemeResource ApplicationPageBackgroundThemeBrush}" >
      <Button x:Name = "Retrieve" Content = "Retrieve" HorizontalAlignment = "Left"  
         VerticalAlignment = "Top" Margin = "384,406,0,0"  
         Click = "Retrieve_Click"/>
			
      <Button x:Name = "Add" Content = "Add" HorizontalAlignment = "Left"  
         VerticalAlignment = "Top" Margin = "291,406,0,0" Click = "Add_Click"/>
			
      <TextBlock x:Name = "textBlock" HorizontalAlignment = "Left"  
         TextWrapping = "Wrap" Text = "Name" VerticalAlignment = "Top"  
         Margin = "233,280,0,0" Width = "52"/>
			
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Margin = "289,274,0,0" Width = "370"/>
			
      <TextBlock x:Name = "textBlock1" HorizontalAlignment = "Left"  
         TextWrapping = "Wrap" Text = "Age" VerticalAlignment = "Top"  
         Margin = "233,342,0,0" Width = "52"/>
			
      <TextBox x:Name = "textBox1" HorizontalAlignment = "Left" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Margin = "289,336,0,0" Width = "191"/>
			
      <TextBlock x:Name = "textBlock2" HorizontalAlignment = "Left"  
         Margin = "290,468,0,0" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Width = "324" Height = "131"/>
			
   </Grid>
	
</Page>

다음은 이벤트에 대한 C # 구현입니다. SQLite database.

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 {
 
   /// <summary>
      /// An empty page that can be used on its own or navigated to within a Frame.
   /// </summary>
	
   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<Customer>(); 
      }
		
      private void Retrieve_Click(object sender, RoutedEventArgs e) { 
         var query = conn.Table<Customer>(); 
         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; } 
   } 
	
}

위의 코드를 컴파일하고 실행하면 다음과 같은 창이 나타납니다.

들어가다 NameAge 그리고 Add 단추.

이제 Retrieve단추. 다음 데이터를 볼 수 있습니다.Text Block.

ID 필드는 고객 클래스에 지정된 기본 키 및 자동 증가 필드입니다.

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