1.如果自己手动创建了数据库和字段,则不需要再创建table,基本流程:

1)SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();

sb.DataSource = @"AA.db";//数据库名字

var conStr = sb.ToString();

2)using (var con = new SQLiteConnection(conStr)){……}这句话代表跟数据库建立连接

3)在上面建立的连接con中执行命令或事物

using (var cmd = new SQLiteCommand(cmdFormat1, con)){……}// cmdFormat1为command的string SQL语句;

command可以执行Insert、Select、Read等操作;向表格中插入数值除了固定的SQL Insert语句插入方法以外,还可以通过Parameters实现。

const string cmdFormat1 = "INSERT INTO PERSON VALUES(@ID,@NAME,@AGE)";//不规定具体的数值

cmd1.Parameters.Add(new SQLiteParameter("ID", 2));//分别对每个字段赋值

cmd1.Parameters.Add(new SQLiteParameter("NAME","Betty"));

cmd1.Parameters.Add(new SQLiteParameter("AGE", 24));

有时,需要将取得的数据输出,则再cmd中执行:

var reader=cmd1.ExecuteReader();

while (reader.Read())

{

int age = reader.GetInt16(0);//读到的第0列数据,同理,可以读取其他列数据

Console.WriteLine(age);

Console.ReadKey();

}

事务的代码:

using (var trans = con.BeginTransaction())

{

……(在此可以执行各种command等)

Trans.Commit();

}

在对数据库进行操作时,有时可能在执行SQL代码时出现错误,对数据库进行误操作,为了避免这种情况的出现,可用事务先提交,Trans.Commit()始终带try……catch……,当提交出现错误时在catch中进行rollback操作,代码如下

try

{

trans.Commit();

}

catch (System.Exception ex)

{

Console.WriteLine("Commit's exception:{0}",ex.ToString());

try

{

trans.Rollback();

}

catch (System.Exception ex1)

{

Console.WriteLine("Rollback's exception:{0}",ex1.ToString());

}

}

4)在程序中自己创建表格,

const string cmdFormat = "CREATE TABLE PERSON(ID INT,NAME STRING,AGE INT);";

执行该命令,如果该table已经建立了,在command中执行上面的那句话就会出错,为了避免该问题,在command中执行该命令时,加个try……catch……,这样,即使table已经建立,程序可以继续往下执行;

C# SQLite编程总结的更多相关文章

  1. Android-adb 常用命令 和 sqlite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

  2. SQLite多线程写锁文件解决方案

    在sqlite编程中多线程同时写时会出现异常,我写了个类来解决这个问题. 思路很简单,就是在开始写操作时,记下写操作的托管线程id,表示目前有线程正在做写操作:其他线程来写时,需要先检测是否有进程正在 ...

  3. sqlite3使用教程1 SQLite 命令

    http://www.runoob.com/sqlite/sqlite-commands.html 本章将向您讲解 SQLite 编程人员所使用的简单却有用的命令.这些命令被称为 SQLite 的点命 ...

  4. sqlite详细介绍

    ------------------------------------------------------------------------------SQLite简介-------------- ...

  5. Android——SQLite/数据库 相关知识总结贴

    android SQLite简介 http://www.apkbus.com/android-1780-1-1.html Android SQLite基础 http://www.apkbus.com/ ...

  6. linux c编程操作数据库(sqlite3应用)

     首先pThread 不是linux系统默认库,连接的时候需要使用库libpthread.a. 加入-lpthread参数.另外会有lopen什么找不到的情况.加入-ldl 指定目录.Project_ ...

  7. 系列文章--SQLite文章

    SQLite 随机取n行的方法   SQLite多线程写锁文件解决方案   sqlite和sql server语法上的一些区别   sqlite编程插入标示字段,获得新id   C# SQLiteHe ...

  8. Android SQLite(1)简单示例-增,删,改,查

    1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.S ...

  9. Android菜鸟成长记5-ADB和sqllite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

随机推荐

  1. jq 实现上下排序的一段代码

    前台页面: <div class="adddaren_box"> {%if isset($masterDetailsInfo)%} <div class=&quo ...

  2. 01 ~ 03 headfirst php & mysql

    Question : 难道不是所有web页面原先都放在服务器上吗? 甚至存储在.html文件中的HTML页面? Answer : 没错, 网站的所有文件都存储在服务器上, html, css, php ...

  3. 转:Eclipse快捷键 10个最有用的快捷键

    Eclipse快捷键 10个最有用的快捷键 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代 ...

  4. 01.JavaScript 面向对象精要--原始类型和引用类型

    一.什么是类型 JavaScript 虽然没有类的概念.但依然存在两种类型:原始类型和应用类型. 原始类型保存为简单的数据值,引用类型则保存为对象,其本质是指向内存位置 的引用.也就是说:原始值被直接 ...

  5. Android 开发如何选择轮子(转)

    一个项目的开发,我们不可能一切从0做起,如果真是这样,那同样要哭瞎.因此,善于借用已经做好的 "车轮" 非常重要,如: 网络访问框架:OKHttp.retrofit.android ...

  6. svn 版本控制

    首先来下载和搭建SVN服务器. Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html windows操作 ...

  7. java maven strom 启动异常

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology/IRich ...

  8. nginx 域名绑定端

    server { listen 80; server_name taqing.me www.taqing.me; ##,绑定域名 location / { proxy_pass http://127. ...

  9. OpenBSD之开篇

    对BSD有特殊的情节,早在大学的时候最初迷恋FreeBSD,还记得第一个折腾的版本是5.x,后来组件转到折腾Linux,但那份情节还是在心底,再加上越发觉得Linux的一盘散沙和BSD的完整性形成鲜明 ...

  10. mybatis 对于基本类型数据传值的问题

    最近在开发的时候,遇到一个小问题: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter fo ...