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

python能够做网站苏州相城网站建设

python能够做网站,苏州相城网站建设,重庆建筑工程特种作业信息网,一鸿建设设计网站有时候对于已经查询到的数据集,想要进行二次筛选或者查询,还得再查一遍数据库 或者其他的一些逻辑处理不太方便,就想着为什么不能直接使用sql来查询DataTable呢? 搜索全网没找到可用方案,所以自己实现了一个。 主要…

有时候对于已经查询到的数据集,想要进行二次筛选或者查询,还得再查一遍数据库

或者其他的一些逻辑处理不太方便,就想着为什么不能直接使用sql来查询DataTable呢?

搜索全网没找到可用方案,所以自己实现了一个。

主要实现思路是使用 SQLite In-Memory Database 内存数据库,

需要的包主要是

System.Data.SQLite和 SqlSugar

代码如下

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SQLiteHelper
{public static class SQLiteHelper{public static SqlSugarClient getToSQLiteInMemorySqlSugar(DataTable dt){SQLiteConnection conn = SQLiteHelper.ToSQLiteInMemory(dt);//创建配置并指定连接字符串var config = new ConnectionConfig(){ConnectionString = conn.ConnectionString,DbType = SqlSugar.DbType.Sqlite};//创建SqlSugarClientvar db = new SqlSugarClient(config);//手动指定底层连接为已有的SQLite连接db.Ado.Connection = conn;return db;}private static string GetSQLiteType(Type t){if (t == typeof(string)) return "TEXT";else if (t == typeof(int)) return "INTEGER";else if (t == typeof(double)) return "REAL";else if (t == typeof(decimal)) return "NUMERIC";else return "BLOB";}private static SQLiteConnection ToSQLiteInMemory(DataTable dt){// 创建SQLite in-memory数据库连接SQLiteConnection conn = new SQLiteConnection("Data Source=:memory:");conn.Open();// 创建表结构SQLiteCommand cmd = conn.CreateCommand();string createTableSql = $"CREATE TABLE {dt.TableName} (";foreach (DataColumn col in dt.Columns){createTableSql += $"{col.ColumnName} {GetSQLiteType(col.DataType)}, ";}createTableSql = createTableSql.TrimEnd(',', ' ');createTableSql += ")";cmd.CommandText = createTableSql;cmd.ExecuteNonQuery();// 将DataTable bulk insert到SQLite表中using (SQLiteTransaction tran = conn.BeginTransaction()){using (SQLiteCommand insertCmd = new SQLiteCommand(conn)){insertCmd.CommandText = $"INSERT INTO {dt.TableName} VALUES({string.Join(",", dt.Columns.Cast<DataColumn>().Select(x => "@" + x.ColumnName))})";foreach (DataRow row in dt.Rows){foreach (DataColumn col in dt.Columns){insertCmd.Parameters.AddWithValue("@" + col.ColumnName, row[col.ColumnName]);}insertCmd.ExecuteNonQuery();insertCmd.Parameters.Clear();}tran.Commit();}}return conn;}}
}

调用示例

			// 创建DataTable,添加列DataTable dt = new DataTable("Products");dt.Columns.Add("Id", typeof(int));dt.Columns.Add("Name", typeof(string));dt.Columns.Add("Price", typeof(decimal));// 添加表到DataSetds.Tables.Add(dt);// 填充几行数据dt.Rows.Add(1, "Apple", 1.99m);dt.Rows.Add(2, "Orange", 2.99m);dt.Rows.Add(3, "Banana", 0.99m);var db = SQLiteHelper.getToSQLiteInMemorySqlSugar(dt);//查询结果var ret = db.Ado.SqlQuery<dynamic>("select * from Products").ToList();

这样就实现了sql查询DataTable的功能

原创不易,能帮到你的话,关注,评论,点赞,收藏走一波。

http://www.yayakq.cn/news/77965/

相关文章:

  • 瑞安 网站建设培训班下载手机app免费安装
  • 如何用js做网站wordpress后台编辑
  • 做网站的工作要求阿里云轻量级wordpress
  • 网站建设的公司哪家便宜手游推广平台代理
  • 公司网站出现空白页网站菜单素材
  • 网站模版亮点百度反馈中心
  • 如何做同城信息网站毕业设计做 什么网站好
  • 网站统计查询做门窗做什么网站好
  • 如何做一个个人网站软件市场下载
  • 仿牌做外贸建网站长春网站建设模板制作
  • 重庆企业官网建站快速搭建建盏大师排名与落款
  • 广告毕业设计作品网站做彩票网站是违法
  • 企业网站配色绿色配什么色合适推广官网
  • 上海建设银行官方网站中英企业网站模板
  • 网站建设定金合同范本商城建设网站
  • 竞价网站做推广网站改版后不收录
  • 网站团购功能怎么做视频网站模板下载
  • 网站设计二级页面怎么做中企动力z云邮企业邮箱
  • 做网站需要网页嵌套吗站嗨免费建站
  • 怎么接做网站的任务wordpress如何设置上传图片的大小
  • 网站建设需要的技术手机怎么做网站添加背景音乐
  • 成都网站建设与维护网站网络推广方式方法
  • 网站开发设计大赛深圳最出名的50家公司
  • 专业网站设计 网络服务哪里ui培训班好
  • 手机网站全屏知乎app开发公司
  • 凡科网站模块网络营销策划方案的目的
  • asp.net 网站 相册成都网络营销网站
  • 做网站在阿里云买什么软件财务软件排行榜前十名
  • 顶尖网站建设网站建设案例要多少钱
  • 企业网站建设相关书籍在线阅读网站设计基础