로컬 SQLite.NET 데이터베이스에 저장된 데이터 | 아이포 테크노랩
SQLite 수단
SQLite는 애플리케이션 소프트웨어에서 널리 사용되는 로컬 데이터베이스 저장소입니다. 이것은 아마도 오늘날 가장 널리 사용되는 데이터베이스 엔진이며 특히 많은 브라우저, 운영 체제 및 임베디드 시스템에서 사용됩니다. SQLite 데이터베이스 엔진을 사용하면 Xamarin.Forms 애플리케이션에서 데이터 개체를 공유 코드로 로드하고 백업할 수 있습니다.
Crud Operation과 함께 Xamarin 형식의 SQLite 데이터베이스를 사용하는 방법은 무엇입니까?
Crud 작업과 함께 Xamarin 형식의 SQLite 데이터베이스 사용에 대한 다음 단계를 따르십시오.
1단계: Xamarin 프로젝트를 생성합니다.
Xamarin 양식 프로젝트를 클릭하여 새 프로젝트를 만듭니다.
그런 다음 요구 사항에 따라 빈 템플릿과 플랫폼을 선택합니다.
2 단계:
프로젝트를 생성한 후 솔루션 탐색기에서 프로젝트 이름을 클릭한 다음 마우스 오른쪽 버튼을 클릭하고 NuGet 패키지 관리를 선택하여 패키지를 설치합니다.
이름이 같은 NuGet 패키지가 여러 개 있습니다. 올바른 패키지에는 다음 속성이 적용됩니다.
아이디: sqlite-net-pcl
작성자: SQLite-net
소유자: praeclarum
3단계:
패키지를 설치한 후 프로젝트에 세 개의 폴더를 만들고 Model, View 및 ViewModel로 이름을 지정해야 합니다.
자세히 보기: 데이터베이스 백업 전략 계획 - 무시할 수 없는 7가지 필수 항목
4단계:
시스템에서 데이터베이스 파일 대상을 지정합니다. 이 사양은 App.xaml.cs 파일에서 선언해야 합니다.
파일 이름: App.xaml.cs
암호:
namespace CrudSqliteDatabase
{
public partial class App : Application
{
static SQLiteHelper Database;
public static SQLiteHelper SQLiteDb
{
get
{
if (Database == null)
{
Database = new
//Define the destination for store the data
SQLiteHelper(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "XamarinStudentSQLite.db3"));
}
return Database;
}
}
public App()
{
InitializeComponent();
MainPage = new MainPage();
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
}
5단계:
그런 다음 보기 폴더에 보기 페이지를 만들고 MainPage.xaml과 같은 이름을 지정합니다.
파일 이름: MainPage.xaml
암호:
<!--?xml version="1.0" encoding="utf-8”?-->
<contentpage x:class="CrudSqliteDatabase.MainPage" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<stacklayout>
<stacklayout>
<stacklayout horizontaloptions="Center" verticaloptions="Start">
<entry placeholder="Enter STudent ID" x:name="txtStudentId"></entry>
<entry placeholder="Enter Student Name" x:name="txtStuName"></entry>
<stacklayout horizontaloptions="CenterAndExpand" orientation="Horizontal"><button clicked="btnStudentAdd_Clicked" text="Insert" widthrequest="200" x:name="btnStudentAdd"></button><button clicked="btnStudentData_Clicked" text="Details" widthrequest="200" x:name="btnStudentData">
<stacklayout horizontaloptions="CenterAndExpand" orientation="Horizontal">
</stacklayout></button><button clicked="btnStudentUpdate_Clicked" text="Update" widthrequest="200" x:name="btnStudentUpdate"></button><button clicked="btnStudentDelete_Clicked" text="Delete" widthrequest="200" x:name="btnStudentDelete">
<listview x:name="lstStudentData">
<listview.itemtemplate>
<datatemplate>
<viewcell>
<stacklayout horizontaloptions="CenterAndExpand" verticaloptions="CenterAndExpand">
<grid>
<grid.columndefinitions>
<columndefinition>
<columndefinition>
</columndefinition></columndefinition></grid.columndefinitions>
</grid>
</stacklayout>
</viewcell>
</datatemplate>
</listview.itemtemplate>
</listview></button></stacklayout></stacklayout></stacklayout></stacklayout></contentpage>
6단계:
모든 메서드는 사용자 측에서 데이터를 바인딩하고 가져오기 위해 Mainpage.xaml.cs 파일에서 구현됩니다.
파일 이름: MainPage.xaml.cs
암호:
namespace CrudSqliteDatabase
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected async override void OnAppearing()
{
base.OnAppearing();
//Get All Student Data
var StudentList = await App.SQLiteDb.GetItemsAsync();
if (StudentList != null)
{
lstStudentData.ItemsSource = StudentList;
}
}
private async void btnStudentData_Clicked(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtStudentId.Text))
{
//Get Student Details
var student = await App.SQLiteDb.GetItemAsync(Convert.ToInt32(txtStudentId.Text));
if (student != null)
{
txtStuName.Text = student.StudentName;
//Display all The Student name in alert box
}
}
else
{
//Display the alert for Please enter the Student ID.
}
}
private async void btnStudentUpdate_Clicked(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtStudentId.Text))
{
Student student = new Student()
{
StudentId = Convert.ToInt32(txtStudentId.Text),
StudentName = txtStuName.Text
};
//Update Student
await App.SQLiteDb.SaveItemAsync(student);
txtStudentId.Text = string.Empty;
txtStuName.Text = string.Empty;
//Data updated Successfully to show the message in alert
//Get All Students
var StudentList = await App.SQLiteDb.GetItemsAsync();
if (StudentList != null)
{
lstStudentData.ItemsSource =StudentList;
}
}
else
{
//Display the alert for Please enter the Student ID.
}
}
private async void btnStudentDelete_Clicked(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtStudentId.Text))
{
//Get Student
var student = await App.SQLiteDb.GetItemAsync(Convert.ToInt32(txtStudentId.Text));
if (student != null)
{
//Delete Student
await App.SQLiteDb.DeleteItemAsync(student);
txtStudentId.Text = string.Empty;
//Data Deleted Successfully to show the message in alert
//Get All Student
var StudentList = await App.SQLiteDb.GetItemsAsync();
if (StudentList != null)
{
lstStudentData.ItemsSource = StudentList;
}
}
}
else
{
//Display the alert for Please enter the Student ID.
}
}
private async void btnStudentAdd_Clicked(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtStuName.Text))
{
Student student = new Student()
{
StudentName = txtStuName.Text
};
//Add New Student
await App.SQLiteDb.SaveItemAsync(student);
txtStuName.Text = string.Empty;
//Display the message for Data Inserted Successfully.
//Get All Student
var StudentList = await App.SQLiteDb.GetItemsAsync();
if (StudentList != null)
{
lstStudentData.ItemsSource =StudentList;
}
}
else
{
//Display the alert for Please enter the Student ID. }
}
}
7단계:
로컬 데이터베이스에 데이터를 저장하기 위해 이 클래스에서 삽입, 업데이트, 세부 정보 및 삭제 메서드 구현을 위한 SqliteHelper 클래스를 만듭니다. 이 클래스는 ViewModel 폴더에 저장됩니다.
Dot Net 개발 회사를 고용할 계획입니까? 귀하의 검색은 여기서 끝납니다.
파일 이름: SqliteHelper.cs
암호:
namespace CrudSqliteDatabase
{
public class SQLiteHelper
{
SQLiteAsyncConnection database;
public SQLiteHelper(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<student>().Wait();
}
//Insert and Update new record
public Task<int> SaveItemAsync(Student student)
{
if (student.StudentId != 0)
{
return database.UpdateAsync(student);
}
else
{
return database.InsertAsync(student);
}
}
//Delete
public Task<int> DeleteItemAsync(Student student)
{
return database.DeleteAsync(student);
}
//Read All the students name
public Task<list<student>> GetItemsAsync()
{
return database.Table<student>().ToListAsync();
}
//Read Student data
public Task<student> GetItemAsync(int StudentId)
{
return database.Table<student>().Where(i => i.StudentId == StudentId).FirstOrDefaultAsync();
}
}
}
</student></student></student></list<student></int></int></student>
8단계:
Model 폴더에 학생 데이터에 대한 모델 클래스를 만들고 이름을 Student.cs로 지정합니다.
파일 이름: Student.cs
암호:
namespace CrudSqliteDatabase.Model
{
public class Student
{
[PrimaryKey, AutoIncrement]
public int StudentId { get; set; }
public string StudentName { get; set; }
}
}
9단계:
프로젝트를 실행하고 아래 출력을 확인하십시오.
결론
이 블로그에서는 xamarin.forms의 SQLite 데이터베이스를 사용한 crud 작업에 대해 논의했습니다. SQLite는 애플리케이션 소프트웨어에서 널리 사용되는 로컬 데이터베이스 저장소입니다. 이 소프트웨어는 여러 번 네트워크 트래픽 문제 및 신호 없음 등과 같은 기타 문제 때문에 더 유용합니다. 이 모든 문제는 이 소프트웨어를 사용하여 해결됩니다. 예제와 함께 MVVM 패턴을 사용하여 SQLite 데이터베이스에 대한 모든 정보를 설명했습니다.
Reference
이 문제에 관하여(로컬 SQLite.NET 데이터베이스에 저장된 데이터 | 아이포 테크노랩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ifourtechnolab/stored-data-in-local-sqlitenet-database-ifour-technolab-2kh2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)