当前位置: 首页 > news >正文

建设包包网站的目的wordpress 回复 慢

建设包包网站的目的,wordpress 回复 慢,网站地图提交地址,网站建设培训总结场景 Sqlite数据库 SQLite是一个进程内的库#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 它是一个零配置的数据库#xff0c;这意味着与其他数据库不一样#xff0c;您不需要在系统中配置。 就像其他数据库#xff0c;SQLite 引擎不…场景 Sqlite数据库 SQLite是一个进程内的库实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 它是一个零配置的数据库这意味着与其他数据库不一样您不需要在系统中配置。 就像其他数据库SQLite 引擎不是一个独立的进程可以按应用程序需求进行静态或动态连接。 SQLite 直接访问其存储文件。 需求是在Winform程序启动时进行本地建库建表然后进行增删改查的逻辑操作。 注 博客霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主 实现 1、本文直接参考博客 SQLite操作指南之.NET篇https://www.cnblogs.com/wml-it/p/16574254.html 进行调用和适配。 2、Nuget安装System.Data.SQLite.Core 3、封装操作Sqlite的帮助类SqLiteHelper class SqLiteHelper{/// summary/// 数据库连接定义/// /summaryprivate SQLiteConnection dbConnection;/// summary/// SQL命令定义/// /summaryprivate SQLiteCommand dbCommand;/// summary/// 数据读取定义/// /summaryprivate SQLiteDataReader dataReader;/// summary/// 构造函数/// /summary/// param nameconnectionString连接SQLite库字符串/parampublic SqLiteHelper(string connectionString){try{dbConnection new SQLiteConnection(connectionString);dbConnection.Open();}catch (Exception e){Log(e.ToString());}}/// summary/// 执行SQL命令/// /summary/// returnsThe query./returns/// param namequeryStringSQL命令字符串/parampublic SQLiteDataReader ExecuteQuery(string queryString){try{dbCommand dbConnection.CreateCommand();dbCommand.CommandText queryString;dataReader dbCommand.ExecuteReader();}catch (Exception e){Log(e.Message);}return dataReader;}/// summary/// 关闭数据库连接/// /summarypublic void CloseConnection(){//销毁Commendif (dbCommand ! null){dbCommand.Cancel();}dbCommand null;//销毁Readerif (dataReader ! null){dataReader.Close();}dataReader null;//销毁Connectionif (dbConnection ! null){dbConnection.Close();}dbConnection null;}/// summary/// 读取整张数据表/// /summary/// returnsThe full table./returns/// param nametableName数据表名称/parampublic SQLiteDataReader ReadFullTable(string tableName){string queryString SELECT * FROM tableName;return ExecuteQuery(queryString);}/// summary/// 向指定数据表中插入数据/// /summary/// returnsThe values./returns/// param nametableName数据表名称/param/// param namevalues插入的数值/parampublic SQLiteDataReader InsertValues(string tableName, string[] values){//获取数据表中字段数目int fieldCount ReadFullTable(tableName).FieldCount;//当插入的数据长度不等于字段数目时引发异常if (values.Length ! fieldCount){throw new SQLiteException(values.Length!fieldCount);}string queryString INSERT INTO tableName VALUES ( values[0] ;for (int i 1; i values.Length; i){queryString , values[i] ;}queryString );return ExecuteQuery(queryString);}/// summary/// 更新指定数据表内的数据/// /summary/// returnsThe values./returns/// param nametableName数据表名称/param/// param namecolNames字段名/param/// param namecolValues字段名对应的数据/param/// param namekey关键字/param///paramnamevalue关键字对应的值/paramBR       ///paramnameoperation运算符,,,...默认“”/parampublic SQLiteDataReader UpdateValues(string tableName, string[] colNames, string[] colValues, string key, string value, string operation ){//当字段名称和字段数值不对应时引发异常if (colNames.Length ! colValues.Length){throw new SQLiteException(colNames.Length!colValues.Length);}string queryString UPDATE tableName SET colNames[0] colValues[0] ;for (int i 1; i colValues.Length; i){queryString , colNames[i] colValues[i] ;}queryString WHERE key operation value ;return ExecuteQuery(queryString);}/// summary/// 删除指定数据表内的数据/// /summary/// returnsThe values./returns/// param nametableName数据表名称/param/// param namecolNames字段名/param/// param namecolValues字段名对应的数据/parampublic SQLiteDataReader DeleteValuesOR(string tableName, string[] colNames, string[] colValues, string[] operations){//当字段名称和字段数值不对应时引发异常if (colNames.Length ! colValues.Length || operations.Length ! colNames.Length || operations.Length ! colValues.Length){throw new SQLiteException(colNames.Length!colValues.Length || operations.Length!colNames.Length || operations.Length!colValues.Length);}string queryString DELETE FROM tableName WHERE colNames[0] operations[0] colValues[0] ;for (int i 1; i colValues.Length; i){queryString OR colNames[i] operations[0] colValues[i] ;}return ExecuteQuery(queryString);}/// summary/// 删除指定数据表内的数据/// /summary/// returnsThe values./returns/// param nametableName数据表名称/param/// param namecolNames字段名/param/// param namecolValues字段名对应的数据/parampublic SQLiteDataReader DeleteValuesAND(string tableName, string[] colNames, string[] colValues, string[] operations){//当字段名称和字段数值不对应时引发异常if (colNames.Length ! colValues.Length || operations.Length ! colNames.Length || operations.Length ! colValues.Length){throw new SQLiteException(colNames.Length!colValues.Length || operations.Length!colNames.Length || operations.Length!colValues.Length);}string queryString DELETE FROM tableName WHERE colNames[0] operations[0] colValues[0] ;for (int i 1; i colValues.Length; i){queryString AND colNames[i] operations[i] colValues[i] ;}return ExecuteQuery(queryString);}/// summary/// 创建数据表/// /summary /// returnsThe table./returns/// param nametableName数据表名/param/// param namecolNames字段名/param/// param namecolTypes字段名类型/parampublic SQLiteDataReader CreateTable(string tableName, string[] colNames, string[] colTypes){string queryString CREATE TABLE IF NOT EXISTS tableName ( colNames[0] colTypes[0];for (int i 1; i colNames.Length; i){queryString , colNames[i] colTypes[i];}queryString ) ;return ExecuteQuery(queryString);}/// summary/// Reads the table./// /summary/// returnsThe table./returns/// param nametableNameTable name./param/// param nameitemsItems./param/// param namecolNamesCol names./param/// param nameoperationsOperations./param/// param namecolValuesCol values./parampublic SQLiteDataReader ReadTable(string tableName, string[] items, string[] colNames, string[] operations, string[] colValues){string queryString SELECT items[0];for (int i 1; i items.Length; i){queryString , items[i];}queryString FROM tableName WHERE colNames[0] operations[0] colValues[0];for (int i 0; i colNames.Length; i){queryString AND colNames[i] operations[i] colValues[0] ;}return ExecuteQuery(queryString);}/// summary/// 本类log/// /summary/// param names/paramstatic void Log(string s){Console.WriteLine(class SqLiteHelper::: s);}} 注意这里的引入 using System; using System.Data.SQLite; 4、如果需要在程序启动时执行建库建表等操作只需要在Program.cs中添加执行代码 上面参考博客中的使用示例 class Program{private static SqLiteHelper sql;static void Main(string[] args){sql new SqLiteHelper(data sourceStudentSystem.db);//创建名为table1的数据表sql.CreateTable(Students, new string[] { ID, Name, Age, Email }, new string[] { INTEGER, TEXT, INTEGER, TEXT });//插入两条数据sql.InsertValues(Students, new string[] { 1, 张三, 22, Zhang163.com });sql.InsertValues(Students, new string[] { 2, 李四, 25, Li4163.com });//更新数据将Name张三的记录中的Name改为Zhang3sql.UpdateValues(Students, new string[] { Name }, new string[] { ZhangSan }, Name, Zhang3);//删除Name张三且Age26的记录,DeleteValuesOR方法类似sql.DeleteValuesAND(Students, new string[] { Name, Age }, new string[] { 张三, 22 }, new string[] { , });//读取整张表SQLiteDataReader reader sql.ReadFullTable(Students);while (reader.Read()){//读取IDLog(ID: reader.GetInt32(reader.GetOrdinal(ID)));//读取NameLog(NAME: reader.GetString(reader.GetOrdinal(Name)));//读取AgeLog(Age: reader.GetInt32(reader.GetOrdinal(Age)));//读取EmailLog(Email: reader.GetString(reader.GetOrdinal(Email)));}Console.ReadLine();}static void Log(string s){Console.WriteLine(s);}} 这里只需要在启动后执行建库建表的操作所以在Program.cs中执行封装的全局工具类方法 namespace DataConvert {static class Program{/// summary/// 应用程序的主入口点。/// /summary[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);//顺序勿动//初始化positions数据库Global.Instance.InitPositionSqLite();Application.Run(new Form1());}} } 如上添加一行 Global.Instance.InitPositionSqLite(); 注意这行添加的位置。 然后构建一个单例的全局工具类Global class Global{private SqLiteHelper _sqlLiteHelper;private static string _lockFlag GlobalLock;private static Global _instance;//mqtt是否已经连接public  bool isMqttClientConnected false;private Global(){}public static Global Instance{get{lock (_lockFlag){if (_instance null){_instance new Global();}return _instance;}}}public SqLiteHelper sqlLiteHelper{get { return _sqlLiteHelper; }set { _sqlLiteHelper value; }}public void InitPositionSqLite(){_sqlLiteHelper new SqLiteHelper(data sourcepositions.db);//创建名为positions的数据表_sqlLiteHelper.CreateTable(positions, new string[] { timestamp, data }, new string[] { TEXT, TEXT });}} 添加一个方法用来实例化SqlLiteHelp的实例执行建库建表操作 这里创建名为positions.db的库并且创建名为positions的表然后该表有两个字段timestamp和data全部为字符串文本格式。 5、项目启动后查看exe所在同目录下的db文件已经创建成功 6、Sqlite可视化工具DB Browser for SQLite的下载与使用 DB Browser for SQLite: mirrors / sqlitebrowser / sqlitebrowser · GitCode 下载地址: Downloads - DB Browser for SQLite 下载并在Windows上解压打开后双击 DB Browser for SQLite.exe 启动然后打开数据库选择上面的db文件 这里可以看到表以及浏览数据和执行sql等操作 7、这样的话就可以在Form1.cs等页面中执行增删改查的逻辑 插入数据时就可以 Global.Instance.sqlLiteHelper.InsertValues(positions, new string[] { time2, 霸道的程序猿}); 其中time2是获取的当前时间戳字符串。 读取整张表的数据 SQLiteDataReader reader Global.Instance.sqlLiteHelper.ReadFullTable(positions);while (reader.Read()){//读取Console.WriteLine(timestamp: reader.GetString(reader.GetOrdinal(timestamp)));Console.WriteLine(data: reader.GetString(reader.GetOrdinal(data)));} 如果要读取Sqlite指定表中的前多少行可以通过执行Sqlite的自定义语句的方式实现 比如要查询前6行 SQLiteDataReader reader Global.Instance.sqlLiteHelper.ExecuteQuery(SELECT* FROM positions LIMIT 6;); 其他操作都可以通过执行sql语句的方式执行比如删除指定条件的数据 Global.Instance.sqlLiteHelper.ExecuteQuery(DELETE FROM positions WHERE timestamp reader.GetString(reader.GetOrdinal(timestamp));); 这里是查询出前6行并挨个操作后删除。 其他更多Sqlite语句的写法和示例可自行网上搜索 SQLite 教程 | 菜鸟教程
http://www.hkea.cn/news/14277045/

相关文章:

  • 企业网站样式专门做图片的网站吗
  • 桐乡市城乡规划建设局网站wordpress 在线报名
  • 网站空间服务外部调用wordpress函数
  • asp装修公司网站海南注册公司多少钱
  • 免费做网站视频长沙网站开发流程
  • 高端网站开发程视频制作价格明细
  • 云集网站哪个公司做的做网站能带来什么问题
  • 网站设计多少钱网站首页排名下降
  • 网站主色怎么选择网站开发和网络安全
  • 百度网站的结构企业信息系统开发
  • 北京海淀区工商局网站wordpress吾爱
  • 市场部职能中的网站建设网站推广的基本方法是什么
  • 推广网站如何做网络营销渠道的类型
  • 廊坊市建设局网站阿里做的网站后台怎么进
  • 常做网站首页的文件名怎么做网站logo
  • sae 网站模板网站建设开发费会计处理
  • 大学物流仓储作业代做网站网站安全维护内容
  • 网站降权查询开发网站需要什么技术2022
  • 网站商城建设基本流程合肥建设公司网站
  • 上海网站设制作软件需要什么技术
  • 旅游门票做的最好的是哪个网站微信公众号 手机网站开发
  • 买链接网站网站建设的安全防护方法
  • 红桥集团网站建设平台贷款无力偿还怎么办
  • 育婴网站模板网站建设管理工作的意见
  • 网站底部链接怎么做一个服务器如何建设多个网站
  • 游戏类网站备案常州网红餐厅
  • 做网站公司如何选Wordpress plan
  • 大型信息类PC网站适合vue做吗西宁做网站君博先进
  • 中国最大的网站制作公司网站标题title怎么写
  • 郑州网站建设知乎怎么找网站