zoukankan      html  css  js  c++  java
  • C# SQLite编程总结

    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已经建立,程序可以继续往下执行;

  • 相关阅读:
    CF1328B K-th Beautiful String
    CF1327B Princesses and Princes
    CF750D New Year and Fireworks
    CF57C Array
    洛谷P5661 公交换乘(CSP-J 2019 T2)
    Docker原理:Cgroup
    Docker原理:Namespace
    Anaconda软件安装使用问题
    初步了解Unix系统的I/O模式
    深入理解索引和AVL树、B-树、B+树的关系
  • 原文地址:https://www.cnblogs.com/SherryWang/p/3548162.html
Copyright © 2011-2022 走看看