日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLite DBHelp

發布時間:2024/7/19 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLite DBHelp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c#連接SQLite

SQLite這個精巧的小數據庫,無需安裝軟件,只需要一個System.Data.SQLite.DLL文件即可操作SQLite數據庫。SQLite是一個開源數據庫,現在已變得越來越流行,它的體積很小,被廣泛應用于各種不同類型的應用中。SQLite已經是世界上布署得最廣泛的SQL數據庫引擎,被用在無以計數的桌面電腦應用中,還有消費電子設備中,如移動電話、掌上電腦和MP3播放器等。SQLite的源碼就放在公有領域(即WikiPedia的public domain)中。

本代碼為網上收錄的sqlite數據庫操作類。

代碼正文

Codeusing System;using System.Collections.Generic;using System.Text;using System.Web;using System.Configuration;using System.Data;using System.Data.SQLite;namespace DAL{public class Sqlite{/// <summary>/// 獲得連接對象/// </summary>/// <returns></returns>public static SQLiteConnection GetSQLiteConnection(){return new SQLiteConnection("Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["db"].ToString()));}private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p){if (conn.State != ConnectionState.Open)conn.Open();cmd.Parameters.Clear();cmd.Connection = conn;cmd.CommandText = cmdText;cmd.CommandType = CommandType.Text;cmd.CommandTimeout = 30;if (p != null){foreach (object parm in p)cmd.Parameters.AddWithValue(string.Empty, parm);//for (int i = 0; i < p.Length; i++)// cmd.Parameters[i].Value = p[i];}}public static DataSet ExecuteDataset(string cmdText, params object[] p){DataSet ds = new DataSet();SQLiteCommand command = new SQLiteCommand();using (SQLiteConnection connection = GetSQLiteConnection()){PrepareCommand(command, connection, cmdText, p);SQLiteDataAdapter da = new SQLiteDataAdapter(command);da.Fill(ds);}return ds;}public static DataRow ExecuteDataRow(string cmdText, params object[] p){DataSet ds = ExecuteDataset(cmdText, p);if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)return ds.Tables[0].Rows[0];return null;}/// <summary>/// 返回受影響的行數/// </summary>/// <param name="cmdText">a</param>/// <param name="commandParameters">傳入的參數</param>/// <returns></returns>public static int ExecuteNonQuery(string cmdText, params object[] p){SQLiteCommand command = new SQLiteCommand();using (SQLiteConnection connection = GetSQLiteConnection()){PrepareCommand(command, connection, cmdText, p);return command.ExecuteNonQuery();}}/// <summary>/// 返回SqlDataReader對象/// </summary>/// <param name="cmdText"></param>/// <param name="commandParameters">傳入的參數</param>/// <returns></returns>public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p){SQLiteCommand command = new SQLiteCommand();SQLiteConnection connection = GetSQLiteConnection();try{PrepareCommand(command, connection, cmdText, p);SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);return reader;}catch{connection.Close();throw;}}/// <summary>/// 返回結果集中的第一行第一列,忽略其他行或列/// </summary>/// <param name="cmdText"></param>/// <param name="commandParameters">傳入的參數</param>/// <returns></returns>public static object ExecuteScalar(string cmdText, params object[] p){SQLiteCommand cmd = new SQLiteCommand();using (SQLiteConnection connection = GetSQLiteConnection()){PrepareCommand(cmd, connection, cmdText, p);return cmd.ExecuteScalar();}}/// <summary>/// 分頁/// </summary>/// <param name="recordCount"></param>/// <param name="pageIndex"></param>/// <param name="pageSize"></param>/// <param name="cmdText"></param>/// <param name="countText"></param>/// <param name="p"></param>/// <returns></returns>public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p){if (recordCount < 0)recordCount = int.Parse(ExecuteScalar(countText, p).ToString());DataSet ds = new DataSet();SQLiteCommand command = new SQLiteCommand();using (SQLiteConnection connection = GetSQLiteConnection()){PrepareCommand(command, connection, cmdText, p);SQLiteDataAdapter da = new SQLiteDataAdapter(command);da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result");}return ds;}}}

?

System.Data.SQLite數據庫通用類

針對對數據庫的操作情況,分為以下幾種情況:

創建數據庫文件;

返回DataTable;

返回DataReader;

執行增刪改,返回受影響的行數;

執行查詢,返回第一行第一列(通常用于帶有行函數的查詢,如SUM/AVG/COUNT等);

返回庫中所有的表;

因為在System.Data.SQLite中不存在存儲過程,所以所有的操作都是基于文本的SQL語句,為了避免SQL注入,所以使用了參數化的SQL語句,這個數據庫通用類如下:

Codeusing System; using System.Data; using System.Data.Common; using System.Data.SQLite;namespace SQLiteQueryBrowser {/// <summary>/// 說明:這是一個針對System.Data.SQLite的數據庫常規操作封裝的通用類。/// 作者:zhoufoxcn(周公)/// 日期:2010-04-01/// Blog:http://zhoufoxcn.blog.51cto.com or http://blog.csdn.net/zhoufoxcn/// Version:0.1/// </summary>public class SQLiteDBHelper{private string connectionString = string.Empty;/// <summary>/// 構造函數/// </summary>/// <param name="dbPath">SQLite數據庫文件路徑</param>public SQLiteDBHelper(string dbPath){this.connectionString = "Data Source=" + dbPath;}/// <summary>/// 創建SQLite數據庫文件/// </summary>/// <param name="dbPath">要創建的SQLite數據庫文件路徑</param>public static void CreateDB(string dbPath){using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbPath)){connection.Open();using (SQLiteCommand command = new SQLiteCommand(connection)){command.CommandText = "CREATE TABLE Demo(id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE)";command.ExecuteNonQuery();command.CommandText = "DROP TABLE Demo";command.ExecuteNonQuery();}}}/// <summary>/// 對SQLite數據庫執行增刪改操作,返回受影響的行數。/// </summary>/// <param name="sql">要執行的增刪改的SQL語句</param>/// <param name="parameters">執行增刪改語句所需要的參數,參數必須以它們在SQL語句中的順序為準</param>/// <returns></returns>public int ExecuteNonQuery(string sql, SQLiteParameter[] parameters){int affectedRows = 0;using (SQLiteConnection connection = new SQLiteConnection(connectionString)){connection.Open();using (DbTransaction transaction = connection.BeginTransaction()){using (SQLiteCommand command = new SQLiteCommand(connection)){command.CommandText = sql;if (parameters != null){command.Parameters.AddRange(parameters);}affectedRows = command.ExecuteNonQuery();}transaction.Commit();}}return affectedRows;}/// <summary>/// 執行一個查詢語句,返回一個關聯的SQLiteDataReader實例/// </summary>/// <param name="sql">要執行的查詢語句</param>/// <param name="parameters">執行SQL查詢語句所需要的參數,參數必須以它們在SQL語句中的順序為準</param>/// <returns></returns>public SQLiteDataReader ExecuteReader(string sql, SQLiteParameter[] parameters){SQLiteConnection connection = new SQLiteConnection(connectionString);SQLiteCommand command = new SQLiteCommand(sql, connection);if (parameters != null){command.Parameters.AddRange(parameters);}connection.Open();return command.ExecuteReader(CommandBehavior.CloseConnection);}/// <summary>/// 執行一個查詢語句,返回一個包含查詢結果的DataTable/// </summary>/// <param name="sql">要執行的查詢語句</param>/// <param name="parameters">執行SQL查詢語句所需要的參數,參數必須以它們在SQL語句中的順序為準</param>/// <returns></returns>public DataTable ExecuteDataTable(string sql, SQLiteParameter[] parameters){using (SQLiteConnection connection = new SQLiteConnection(connectionString)){using (SQLiteCommand command = new SQLiteCommand(sql, connection)){if (parameters != null){command.Parameters.AddRange(parameters);}SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);DataTable data = new DataTable();adapter.Fill(data);return data;}}}/// <summary>/// 執行一個查詢語句,返回查詢結果的第一行第一列/// </summary>/// <param name="sql">要執行的查詢語句</param>/// <param name="parameters">執行SQL查詢語句所需要的參數,參數必須以它們在SQL語句中的順序為準</param>/// <returns></returns>public Object ExecuteScalar(string sql, SQLiteParameter[] parameters){using (SQLiteConnection connection = new SQLiteConnection(connectionString)){using (SQLiteCommand command = new SQLiteCommand(sql, connection)){if (parameters != null){command.Parameters.AddRange(parameters);}SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);DataTable data = new DataTable();adapter.Fill(data);return data;}}}/// <summary>/// 查詢數據庫中的所有數據類型信息/// </summary>/// <returns></returns>public DataTable GetSchema(){using (SQLiteConnection connection = new SQLiteConnection(connectionString)){connection.Open();DataTable data=connection.GetSchema("TABLES");connection.Close();//foreach (DataColumn column in data.Columns)//{// Console.WriteLine(column.ColumnName);//}return data;}}} }

?

?

轉載于:https://www.cnblogs.com/sczw-maqing/p/3259525.html

總結

以上是生活随笔為你收集整理的SQLite DBHelp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。