博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net下SQLite的DBHelp
阅读量:5847 次
发布时间:2019-06-18

本文共 6675 字,大约阅读时间需要 22 分钟。

怎样获取SqLite请参考,怎样在SQLite使用Linq请参考

using System;using System.Collections.Generic;using System.Data;using System.Data.SQLite;//using System.Windows.Forms; class Program{        public static void Main()    {        SQLiteDatabase sqlite = new SQLiteDatabase();         sqlite.ExecuteNonQuery("create table datas(name text)");        sqlite.ExecuteNonQuery("insert into datas values('hello')");        DataTable dt = sqlite.GetDataTable("select * from datas");        Console.WriteLine(dt.Rows[0][0].ToString());    }} class SQLiteDatabase{    String dbConnection;     ///     ///     Default Constructor for SQLiteDatabase Class.    ///     public SQLiteDatabase()    {        dbConnection = "Data Source=recipes.s3db";    }     ///     ///     Single Param Constructor for specifying the DB file.    ///     /// The File containing the DB    public SQLiteDatabase(String inputFile)    {        dbConnection = String.Format("Data Source={0}", inputFile);    }     ///     ///     Single Param Constructor for specifying advanced connection options.    ///     /// A dictionary containing all desired options and their values    public SQLiteDatabase(Dictionary
connectionOpts) { String str = ""; foreach (KeyValuePair
row in connectionOpts) { str += String.Format("{0}={1}; ", row.Key, row.Value); } str = str.Trim().Substring(0, str.Length - 1); dbConnection = str; } ///
/// Allows the programmer to run a query against the Database. /// ///
The SQL to run ///
A DataTable containing the result set.
public DataTable GetDataTable(string sql) { DataTable dt = new DataTable(); try { SQLiteConnection cnn = new SQLiteConnection(dbConnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn); mycommand.CommandText = sql; SQLiteDataReader reader = mycommand.ExecuteReader(); dt.Load(reader); reader.Close(); cnn.Close(); } catch (Exception e) { throw new Exception(e.Message); } return dt; } ///
/// Allows the programmer to interact with the database for purposes other than a query. /// ///
The SQL to be run. ///
An Integer containing the number of rows updated.
public int ExecuteNonQuery(string sql) { SQLiteConnection cnn = new SQLiteConnection(dbConnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn); mycommand.CommandText = sql; int rowsUpdated = mycommand.ExecuteNonQuery(); cnn.Close(); return rowsUpdated; } ///
/// Allows the programmer to retrieve single items from the DB. /// ///
The query to run. ///
A string.
public string ExecuteScalar(string sql) { SQLiteConnection cnn = new SQLiteConnection(dbConnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn); mycommand.CommandText = sql; object value = mycommand.ExecuteScalar(); cnn.Close(); if (value != null) { return value.ToString(); } return ""; } ///
/// Allows the programmer to easily update rows in the DB. /// ///
The table to update. ///
A dictionary containing Column names and their new values. ///
The where clause for the update statement. ///
A boolean true or false to signify success or failure.
public bool Update(String tableName, Dictionary
data, String where) { String vals = ""; Boolean returnCode = true; if (data.Count >= 1) { foreach (KeyValuePair
val in data) { vals += String.Format(" {0} = '{1}',", val.Key.ToString(), val.Value.ToString()); } vals = vals.Substring(0, vals.Length - 1); } try { this.ExecuteNonQuery(String.Format("update {0} set {1} where {2};", tableName, vals, where)); } catch { returnCode = false; } return returnCode; }///
/// Allows the programmer to easily delete rows from the DB. /// ///
The table from which to delete. ///
The where clause for the delete. ///
A boolean true or false to signify success or failure.
public bool Delete(String tableName, String where) { Boolean returnCode = true; try { this.ExecuteNonQuery(String.Format("delete from {0} where {1};", tableName, where)); } catch (Exception fail) { Console.WriteLine(fail.Message); returnCode = false; } return returnCode; } ///
/// Allows the programmer to easily insert into the DB /// ///
The table into which we insert the data. ///
A dictionary containing the column names and data for the insert. ///
A boolean true or false to signify success or failure.
public bool Insert(String tableName, Dictionary
data) { String columns = ""; String values = ""; Boolean returnCode = true; foreach (KeyValuePair
val in data) { columns += String.Format(" {0},", val.Key.ToString()); values += String.Format(" '{0}',", val.Value); } columns = columns.Substring(0, columns.Length - 1); values = values.Substring(0, values.Length - 1); try { this.ExecuteNonQuery(String.Format("insert into {0}({1}) values({2});", tableName, columns, values)); } catch (Exception fail) { Console.WriteLine(fail.Message); returnCode = false; } return returnCode; } ///
/// Allows the programmer to easily delete all data from the DB. /// ///
A boolean true or false to signify success or failure.
public bool ClearDB() { DataTable tables; try { tables = this.GetDataTable("select NAME from SQLITE_MASTER where type='table' order by NAME;"); foreach (DataRow table in tables.Rows) { this.ClearTable(table["NAME"].ToString()); } return true; } catch { return false; } } ///
/// Allows the user to easily clear all data from a specific table. /// ///
The name of the table to clear. ///
A boolean true or false to signify success or failure.
public bool ClearTable(String table) { try { this.ExecuteNonQuery(String.Format("delete from {0};", table)); return true; } catch { return false; } }}

 

转载地址:http://nfwjx.baihongyu.com/

你可能感兴趣的文章
接入ios sdk的一些总结
查看>>
initialize,creationComplete,applicationComplete
查看>>
linux man和--help的区别
查看>>
CentOS 默认基本服务详解
查看>>
漫谈程序员系列:一张图道尽程序员的出路
查看>>
RHEL 7--RHCE笔记
查看>>
史上最全直播系统开发流程!速度收藏
查看>>
解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法...
查看>>
【模板】kmp
查看>>
PHP实现文件下载
查看>>
开博纪念
查看>>
图解用Apache + Mod_Python 部署python web应用
查看>>
WES 7 下如何处理蓝牙模块驱动安装失败的问题
查看>>
Linux0.11内核--系统中断处理程序int 0x80实现原理
查看>>
我的友情链接
查看>>
IOS Core Animation Advanced Techniques的学习笔记(三)
查看>>
Win8系统下使用应用商店窗口提示“无法使用内置管理员账户打开应用商店
查看>>
生产环境中mysql主从同步/完整/增量备份
查看>>
告诉你C盘中的每一个文件夹都是干什么的!
查看>>
本博客中关于功能点分析FPA的文章索引
查看>>