热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#andriod开发sqlite操作(引用sqlitenetpcl包)

c#andriod开发sqlite操作sqlite介绍SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。它是一个零配

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截图
在这里插入图片描述

引用包
在这里插入图片描述
所需权限
AndroidManifest.xml


<manifest xmlns:android&#61;"http://schemas.android.com/apk/res/android" android:versionCode&#61;"1" android:versionName&#61;"1.0" package&#61;"SqliteTest.SqliteTest" android:installLocation&#61;"preferExternal"><uses-sdk android:minSdkVersion&#61;"21" android:targetSdkVersion&#61;"21" /><uses-permission android:name&#61;"android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name&#61;"android.permission.FLASHLIGHT" /><uses-permission android:name&#61;"android.permission.INTERNET" /><uses-permission android:name&#61;"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name&#61;"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name&#61;"android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name&#61;"android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name&#61;"android.permission.READ_CONTACTS" /><uses-permission android:name&#61;"android.permission.WRITE_CONTACTS" /><application android:allowBackup&#61;"true" android:icon&#61;"&#64;mipmap/ic_launcher" android:label&#61;"&#64;string/app_name" android:roundIcon&#61;"&#64;mipmap/ic_launcher_round" android:supportsRtl&#61;"true" android:theme&#61;"&#64;style/AppTheme">application>
manifest>

界面格式

main.axml


<GridLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:orientation&#61;"horizontal"android:paddingLeft&#61;"10dp"android:paddingRight&#61;"10dp"android:rowCount&#61;"6"android:columnCount&#61;"2"> <Buttonandroid:id&#61;"&#64;&#43;id/CreateData" android:layout_columnSpan&#61;"2"android:layout_width&#61;"fill_parent"android:text&#61;"新建数据库" /><Buttonandroid:id&#61;"&#64;&#43;id/CreateTable" android:layout_columnSpan&#61;"2"android:layout_width&#61;"match_parent"android:text&#61;"建表" /><Buttonandroid:id&#61;"&#64;&#43;id/InsertTable"android:layout_columnSpan&#61;"2"android:layout_width&#61;"match_parent"android:text&#61;"插入" /><Buttonandroid:id&#61;"&#64;&#43;id/UpdateTable"android:layout_columnSpan&#61;"2"android:layout_width&#61;"match_parent"android:text&#61;"查看表" /><Buttonandroid:id&#61;"&#64;&#43;id/DeleteTable"android:layout_columnSpan&#61;"2"android:layout_width&#61;"match_parent"android:text&#61;"删除" /> <TextViewandroid:id&#61;"&#64;&#43;id/egsql"android:layout_marginRight&#61;"5dp"android:textSize&#61;"20sp" android:text&#61;"sql语句" /><EditTextandroid:id&#61;"&#64;&#43;id/txtsql"android:textSize&#61;"50sp"android:maxLength&#61;"50" android:layout_width&#61;"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 &#61; System.Environment;namespace SqliteTest
{[Activity(Label &#61; "&#64;string/app_name", Theme &#61; "&#64;style/AppTheme", MainLauncher &#61; 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 &#61; null;protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);// Set our view from the "main" layout resourceSetContentView(Resource.Layout.main);db &#61; new SQLiteConnection(Connect_SQL());CreateData &#61; FindViewById<Button>(Resource.Id.CreateData);CreateTable &#61; FindViewById<Button>(Resource.Id.CreateTable);InsertTable &#61; FindViewById<Button>(Resource.Id.InsertTable);UpdateTable &#61; FindViewById<Button>(Resource.Id.UpdateTable);DeleteTable &#61; FindViewById<Button>(Resource.Id.DeleteTable);// egsql &#61; FindViewById


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
author-avatar
mobiledu2502921803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有