c# andriod开发 sqlite操作(引用sqlite-net-pcl包)

c# andriod开发 sqlite操作

sqlite介绍

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
优势:

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。
  • SQLite 不需要配置,这意味着不需要安装或管理。
  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。
  • SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
  • SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
  • SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
  • SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

andriod sdk中自带slqlite数据库

APP截图
c# andriod开发 sqlite操作(引用sqlite-net-pcl包)_第1张图片

引用包
c# andriod开发 sqlite操作(引用sqlite-net-pcl包)_第2张图片
所需权限
AndroidManifest.xml


<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="SqliteTest.SqliteTest" android:installLocation="preferExternal">

  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

  <uses-permission android:name="android.permission.FLASHLIGHT" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  <uses-permission android:name="android.permission.READ_CONTACTS" />
  <uses-permission android:name="android.permission.WRITE_CONTACTS" />

  <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">application>
manifest>

界面格式

main.axml


<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:rowCount="6"
    android:columnCount="2">    
	<Button
        android:id="@+id/CreateData"  
        android:layout_columnSpan="2"
        android:layout_width="fill_parent"
        android:text="新建数据库" />
    <Button
        android:id="@+id/CreateTable"      
        android:layout_columnSpan="2"
        android:layout_width="match_parent"
        android:text="建表" />
    <Button
        android:id="@+id/InsertTable"
        android:layout_columnSpan="2"
        android:layout_width="match_parent"
        android:text="插入" />
    <Button
        android:id="@+id/UpdateTable"
        android:layout_columnSpan="2"
        android:layout_width="match_parent"
        android:text="查看表" />
	<Button
        android:id="@+id/DeleteTable"
        android:layout_columnSpan="2"
        android:layout_width="match_parent"
        android:text="删除" /> 
	 <TextView
        android:id="@+id/egsql"
        android:layout_marginRight="5dp"
        android:textSize="20sp"       
        android:text="sql语句" />
    <EditText
        android:id="@+id/txtsql"
        android:textSize="50sp"
        android:maxLength="50"     
        android:layout_width="fill_parent" />
GridLayout>

代码
MainActivity.cs

using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using System;

using SQLite;
using System.IO;
using Environment = System.Environment;

namespace SqliteTest
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        private Button CreateData;
        private Button CreateTable;
        private Button InsertTable;
        private Button UpdateTable;
        private Button DeleteTable;

        //   private Button egsql;
        private EditText txtsql;

        [Table("Items")]
        public class Stock
        {
            [PrimaryKey, AutoIncrement, Column("_id")]
            public int Id { get; set; }

            [MaxLength(8)]
            public string Symbol { get; set; }
        }

        private SQLiteConnection db = null;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.main);

            db = new SQLiteConnection(Connect_SQL());

            CreateData = FindViewById<Button>(Resource.Id.CreateData);
            CreateTable = FindViewById<Button>(Resource.Id.CreateTable);
            InsertTable = FindViewById<Button>(Resource.Id.InsertTable);
            UpdateTable = FindViewById<Button>(Resource.Id.UpdateTable);
            DeleteTable = FindViewById<Button>(Resource.Id.DeleteTable);
            //   egsql = FindViewById

你可能感兴趣的:(c#/android,andriod,sqlite)