zoukankan      html  css  js  c++  java
  • C#使用System.Data.SQLite操作SQLite

    使用System.Data.SQLite 下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

    得到System.Data.SQLite.dll添加到工程引用;

     建表,插入操作

    1. static void Main(string[] args)  
    2.         {  
    3.             SQLiteConnection conn = null;  
    4.   
    5.             string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";  
    6.             conn = new SQLiteConnection(dbPath);//创建数据库实例,指定文件位置  
    7.             conn.Open();//打开数据库,若文件不存在会自动创建  
    8.   
    9.             string sql = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";//建表语句  
    10.             SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conn);  
    11.             cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表  
    12.   
    13.             SQLiteCommand cmdInsert = new SQLiteCommand(conn);  
    14.             cmdInsert.CommandText = "INSERT INTO student VALUES(1, '小红', '男')";//插入几条数据  
    15.             cmdInsert.ExecuteNonQuery();  
    16.             cmdInsert.CommandText = "INSERT INTO student VALUES(2, '小李', '女')";  
    17.             cmdInsert.ExecuteNonQuery();  
    18.             cmdInsert.CommandText = "INSERT INTO student VALUES(3, '小明', '男')";  
    19.             cmdInsert.ExecuteNonQuery();  
    20.   
    21.             conn.Close();  
    22.         }  

        可以使用SQLite Database Browser来查看数据:

    下载地址:http://sourceforge.net/projects/sqlitebrowser/

         建表成功。

    当然这种方法插入数据效率不高,数据量大的话要使用下面这种方法:

    1. static void Main(string[] args)  
    2.        {  
    3.            string dbPath = Environment.CurrentDirectory + "/test.db";//指定数据库路径  
    4.              
    5.            using(SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))//创建连接  
    6.            {  
    7.                conn.Open();//打开连接  
    8.                using(SQLiteTransaction tran = conn.BeginTransaction())//实例化一个事务  
    9.                {  
    10.                    for (int i = 0; i < 100000; i++ )  
    11.                    {  
    12.                        SQLiteCommand cmd = new SQLiteCommand(conn);//实例化SQL命令  
    13.                        cmd.Transaction = tran;  
    14.                        cmd.CommandText = "insert into student values(@id, @name, @sex)";//设置带参SQL语句  
    15.                        cmd.Parameters.AddRange(new[] {//添加参数  
    16.                            new SQLiteParameter("@id", i),  
    17.                            new SQLiteParameter("@name", "中国人"),  
    18.                            new SQLiteParameter("@sex", "男")  
    19.                        });  
    20.                        cmd.ExecuteNonQuery();//执行查询  
    21.                    }  
    22.                    tran.Commit();//提交  
    23.                }  
    24.            }  
    25.        }  

    插入这样的十万条数据只需要5秒左右。

    读取数据:

    1. static void Main(string[] args)  
    2.         {  
    3.             SQLiteConnection conn = null;  
    4.   
    5.             string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";  
    6.             conn = new SQLiteConnection(dbPath);//创建数据库实例,指定文件位置  
    7.             conn.Open();//打开数据库,若文件不存在会自动创建  
    8.   
    9.             string sql = "select * from student";  
    10.             SQLiteCommand cmdQ = new SQLiteCommand(sql, conn);  
    11.   
    12.             SQLiteDataReader reader = cmdQ.ExecuteReader();  
    13.   
    14.             while (reader.Read())  
    15.             {  
    16.                 Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetString(2));  
    17.             }  
    18.             conn.Close();  
    19.   
    20.             Console.ReadKey();  
    21.         }  

        数据读取成功。

    原文链接:http://www.cnblogs.com/gc2013/p/3806257.html

  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/skyapplezhao/p/3807357.html
Copyright © 2011-2022 走看看