zoukankan      html  css  js  c++  java
  • C#操作SQLite数据库

    一、SQLite介绍

    1、SQLite 简介

    SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准。

    这意味着与其他数据库一样,您不需要在系统中配置。SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

    SQLite 源代码不受版权限制。SQLite数据库官方主页:http://www.sqlite.org/index.html

    image

    2、为什么要用 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)中运行。

    3、SQLite 局限性

    在 SQLite 中,SQL92 不支持的特性如下所示:

    image

    4、SQLite GUI客户端列表:

    • SQLite Expert
    • SQLite Administrator
    • SQLiteStudio
    • SQLite Database Browser
    • Navicat Premium

    SQLite Administrator下载地址:http://download.orbmu2k.de/files/sqliteadmin.zip

    二、C#操作数据库

    1、关于SQLite的connection string:

    http://www.connectionstrings.com/sqlite/

    2、C#下SQLite操作

    驱动dll下载:System.Data.SQLite

    C#使用SQLite步骤:

    (1)新建一个project

    (2)添加SQLite操作驱动dll引用

    (3)使用API操作SQLite DataBase

    using System;
    using System.Data.SQLite;
    
    namespace SQLiteSamples
    {
        class Program
        {
            //数据库连接
            SQLiteConnection m_dbConnection;
    
            static void Main(string[] args)
            {
                Program p = new Program();
            }
    
            public Program()
            {
                createNewDatabase();
                connectToDatabase();
                createTable();
                fillTable();
                printHighscores();
            }
    
            //创建一个空的数据库
            void createNewDatabase()
            {
                SQLiteConnection.CreateFile("MyDatabase.sqlite");
            }
    
            //创建一个连接到指定数据库
            void connectToDatabase()
            {
                m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
                m_dbConnection.Open();
            }
    
            //在指定数据库中创建一个table
            void createTable()
            {
                string sql = "create table highscores (name varchar(20), score int)";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                command.ExecuteNonQuery();
            }
    
            //插入一些数据
            void fillTable()
            {
                string sql = "insert into highscores (name, score) values ('Me', 3000)";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                command.ExecuteNonQuery();
    
                sql = "insert into highscores (name, score) values ('Myself', 6000)";
                command = new SQLiteCommand(sql, m_dbConnection);
                command.ExecuteNonQuery();
    
                sql = "insert into highscores (name, score) values ('And I', 9001)";
                command = new SQLiteCommand(sql, m_dbConnection);
                command.ExecuteNonQuery();
            }
    
            //使用sql查询语句,并显示结果
            void printHighscores()
            {
                string sql = "select * from highscores order by score desc";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                    Console.WriteLine("Name: " + reader["name"] + "	Score: " + reader["score"]);
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    cocos2dx遇到的一些坑
    cocos2dx场景切换的坑
    整合quickx到普通cocos2dx
    Hadoop、spark
    Redis高级特性及应用场景
    wpf相关好资源
    MVVM模式的几个开源框架
    ASP.NET的IIS映射
    NET 开发者必备的工具箱
    C#开源汇总
  • 原文地址:https://www.cnblogs.com/springsnow/p/13072915.html
Copyright © 2011-2022 走看看