C# 内嵌数据库 SQLite


最近,看到一个软件,软件是使用的内嵌数据库。我对这个东西没有实践过,今天突然想亲手做一做!。关于SQLIte的资料我就不多说了,网上都有。我自己也整理了一部分,基本上可以对SQLite有个全面的了解了。我这里就不废话了,直接上我自己的代码。

1:首先要先下载一个SQLite的C#开发的支持的东西。下载地址:sqllite下载地址:tp://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/SQLite-1.0.66.0-setup.exe/download

点击下载后,安装就行。(注意:安装的时候最好不要开着vs2008)

2:打开vs2008,新建一个winform应用程序

3: 打开“服务器资源管理器” 在这里右击“数据连接”---->添加连接   ------》更改  -----》更改数据源为:“SQLLite Database FIle“----->确定 ---->Browse选择你的数据库,(注意选择的文件一定是以后缀“.db”结束的,如果你还没建库,那么你就随便建一个以后缀为"db"结束的文件,放到你项目的bin目录的debug中(很重要,程序发布的路径))

我从网上下载的一个SQLite helper 根本就用不成,经过我的修补终于可以用了。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Web;  
  5. using System.Configuration;  
  6. using System.Data;  
  7. using System.Data.SQLite;  
  8. namespace DAL  
  9. {  
  10.     public class SQLiteHelper  
  11.     {  
  12.         /// <summary>   
  13.         /// 获得连接对象   
  14.         /// </summary>   
  15.         /// <returns></returns>   
  16.         public static SQLiteConnection GetSQLiteConnection()  
  17.         {  
  18.             SQLiteConnection conn=new SQLiteConnection(@"data source=E:\SQliteTest\SQliteTest\bin\Debug\JxyDb.db");  
  19.             conn.SetPassword("123456");//数据库密码   
  20.             return conn;  
  21.         }  
  22.         private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p)  
  23.         {  
  24.             if (conn.State != ConnectionState.Open)  
  25.             {  
  26.                 conn.Open();  
  27.             }  
  28.             cmd.Parameters.Clear();  
  29.             cmd.Connection = conn;  
  30.             cmd.CommandText = cmdText;  
  31.             cmd.CommandType = CommandType.Text;  
  32.             cmd.CommandTimeout = 30;  
  33.             if (p != null)  
  34.             {  
  35.                 foreach (SQLiteParameter parm in p)  
  36.                 {  
  37.                     cmd.Parameters.AddWithValue(parm.ParameterName, parm.Value);  
  38.                 }  
  39.             }  
  40.         }  
  41.         public static DataSet ExecuteDataset(string cmdText, params object[] p)  
  42.         {  
  43.             DataSet ds = new DataSet();  
  44.             SQLiteCommand command = new SQLiteCommand();  
  45.             using (SQLiteConnection connection = GetSQLiteConnection())  
  46.             {  
  47.                 PrepareCommand(command, connection, cmdText, p);  
  48.                 SQLiteDataAdapter da = new SQLiteDataAdapter(command);  
  49.                 da.Fill(ds);  
  50.             }  
  51.             return ds;  
  52.         }  
  53.         public static DataRow ExecuteDataRow(string cmdText, params object[] p)  
  54.         {  
  55.             DataSet ds = ExecuteDataset(cmdText, p);  
  56.             if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)  
  57.                 return ds.Tables[0].Rows[0];  
  58.             return null;  
  59.         }  
  60.         /// <summary>   
  61.         /// 返回受影响的行数   
  62.         /// </summary>   
  63.         /// <param name="cmdText">a</param>   
  64.         /// <param name="commandParameters">传入的参数</param>   
  65.         /// <returns></returns>   
  66.         public static int ExecuteNonQuery(string cmdText, params object[] p)  
  67.         {  
  68.             SQLiteCommand command = new SQLiteCommand();  
  69.             using (SQLiteConnection connection = GetSQLiteConnection())  
  70.             {  
  71.                 PrepareCommand(command, connection, cmdText, p);  
  72.                 return command.ExecuteNonQuery();  
  73.             }  
  74.         }  
  75.         /// <summary>   
  76.         /// 返回SqlDataReader对象   
  77.         /// </summary>   
  78.         /// <param name="cmdText"></param>   
  79.         /// <param name="commandParameters">传入的参数</param>   
  80.         /// <returns></returns>   
  81.         public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p)  
  82.         {  
  83.             SQLiteCommand command = new SQLiteCommand();  
  84.             SQLiteConnection connection = GetSQLiteConnection();  
  85.             try  
  86.             {  
  87.                 PrepareCommand(command, connection, cmdText, p);  
  88.                 SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);  
  89.                 return reader;  
  90.             }  
  91.             catch  
  92.             {  
  93.                 connection.Close();  
  94.                 throw;  
  95.             }  
  96.         }  
  97.         /// <summary>   
  98.         /// 返回结果集中的第一行第一列,忽略其他行或列   
  99.         /// </summary>   
  100.         /// <param name="cmdText"></param>   
  101.         /// <param name="commandParameters">传入的参数</param>   
  102.         /// <returns></returns>   
  103.         public static object ExecuteScalar(string cmdText, params object[] p)  
  104.         {  
  105.             SQLiteCommand cmd = new SQLiteCommand();  
  106.             using (SQLiteConnection connection = GetSQLiteConnection())  
  107.             {  
  108.                 PrepareCommand(cmd, connection, cmdText, p);  
  109.                 return cmd.ExecuteScalar();  
  110.             }  
  111.         }  
  112.         /// <summary>   
  113.         /// 分页   
  114.         /// </summary>   
  115.         /// <param name="recordCount"></param>   
  116.         /// <param name="pageIndex"></param>   
  117.         /// <param name="pageSize"></param>   
  118.         /// <param name="cmdText"></param>   
  119.         /// <param name="countText"></param>   
  120.         /// <param name="p"></param>   
  121.         /// <returns></returns>   
  122.         public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p)  
  123.         {  
  124.             if (recordCount < 0)  
  125.                 recordCount = int.Parse(ExecuteScalar(countText, p).ToString());  
  126.             DataSet ds = new DataSet();  
  127.             SQLiteCommand command = new SQLiteCommand();  
  128.             using (SQLiteConnection connection = GetSQLiteConnection())  
  129.             {  
  130.                 PrepareCommand(command, connection, cmdText, p);  
  131.                 SQLiteDataAdapter da = new SQLiteDataAdapter(command);  
  132.                 da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result");  
  133.             }  
  134.             return ds;  
  135.         }  
  136.   
  137.         /**/  
  138.         /// <summary>   
  139.         /// 放回一个SQLiteParameter   
  140.         /// </summary>   
  141.         /// <param name="name">参数名字</param>   
  142.         /// <param name="type">参数类型</param>   
  143.         /// <param name="size">参数大小</param>   
  144.         /// <param name="value">参数值</param>   
  145.         /// <returns>SQLiteParameter的值</returns>   
  146.         public static  SQLiteParameter CreateSqliteParameter(string name, DbType type, int size, object value)  
  147.         {  
  148.             SQLiteParameter parm = new SQLiteParameter(name, type, size);  
  149.             parm.Value = value;  
  150.             return parm;  
  151.         }  
  152.   
  153.     }  
  154. }   
  • 1
  • 2
  • 下一页

相关内容