Windows下C#连接和操作SQLite数据库

本文仅用于简单说明C#连接和访问SQLite数据库的一些操作,不含其他诸如原理性、解释性的说明。主要用于自己及其他新入人员初学时配置

1. 环境准备
SQLite: SQLite Official
                 根据自己需要下载不同系统的物品。比如我下的就是WindowsOS下预编译的exe、Dll.

GUI Tool: SQLite Expert Personal Edition 个人版是Free的

Wrapper: System.Data.SQLite
                  完全支持.Net2.0, 几乎能完全支持.Net 3.5。这个DLL已经包装了sqlite3.dll。

2. 使用SQLite Expert Personal Edition创建数据库和表格
   当安装完毕SQLite Expert Personal Edition这个GUI工具之后,双击打开,创建数据库和表格,比较简单,你可以参考 官网上的操作参考视频

3. C# 建立一个普通的Console工程
   在该工程上引入System.Data.SQLite.DLL(即wrapper),无需引入SQLite3.dll,因为前者已经包装了后者。
    在代码中import下: "using System.Data.SQLite;"

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SQLite;

namespace TestSQLite
{
    class MyCSharpSQLite
    {
        private static string connStr;

        static void Main(string[] args)
        {

           connStr = SQLiteConnectionString.GetConnectionString(".\\Data\\EasyDataBase.db");
           Console.WriteLine("SQLite Connect String is : {0}", connStr);

           //连接测试
           //testConnect(connStr);

           //执行查询
           ExecQuery("select * from customers");
           
           Console.ReadKey();
        }       

        private static void testConnect(string connStr) 
        {
            try
           {
               SQLiteConnection conn = new SQLiteConnection(connStr);

               conn.Open();
               Console.WriteLine("SQLite Connect OK.");
           }
           catch (Exception ex)
           {
               Console.WriteLine("SQLite Connect fail: {0} ", ex.Message);
           }
        }

        private static void ExecQuery(string sqlStr)
         {
             Console.WriteLine(">> Start to query the database....");
             using (SQLiteConnection conn = new SQLiteConnection(connStr))
             {
                 conn.Open();
                 SQLiteCommand comm = conn.CreateCommand();
                 comm.CommandText = sqlStr;
                 //comm.CommandType = comm.CommandText;

                 using (SQLiteDataReader reader = comm.ExecuteReader())
                 {
                     while (reader.Read())
                     {
                         Console.WriteLine(reader[1].ToString());
                     }
                 }
             }
         }


    }

    /// <summary>

    /// 生成SQLite连接字符串

    /// </summary>

    public static class SQLiteConnectionString
    {

        public static string GetConnectionString(string path)
        {
              return GetConnectionString(path, null);
        }

        public static string GetConnectionString(string path, string password)
        {
            if (string.IsNullOrEmpty(password))
            {
                return "Data Source=" + path;
            }
            else
            {
                return "Data Source=" + path + ";Password=" + password;
            }
        }

     }
}



先说到这里,后续再补充其他。

猜你喜欢

转载自woniu1983.iteye.com/blog/1329593