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

中国航天建设集团有限公司网站家具公司网站建设

中国航天建设集团有限公司网站,家具公司网站建设,人家做网站是什么,室内设计方案设计说明有时候对于已经查询到的数据集,想要进行二次筛选或者查询,还得再查一遍数据库 或者其他的一些逻辑处理不太方便,就想着为什么不能直接使用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/486583/

相关文章:

  • 网站建设哪儿济南兴田德润什么活动十大网站建立公司
  • 社交(sns)网站的完整设计思路网络营销方式有哪些
  • 服装定制网站模板建立网站模板
  • 合作建设网站协议个人音乐网站程序源码
  • 鄂尔多斯市建设厅官方网站图片搜索
  • python做网站显示表格自己的网站什么做优化
  • 做网站分什么中国舆情在线
  • 男生女生做污事网站 localhostphp5 mysql网站开发基础与应用
  • 长沙做网站美工的公司为什么做网站要服务器 和域名
  • o2o网站建设新闻做企业网站服务
  • 求个网站你明白的怎么查找网站的根目录
  • yfcmf做网站做电影网站危险吗
  • 惠州网站设计培训游戏网页制作素材
  • 高唐网站开发网站建设 报价单 doc
  • google网站收录入口佛山关键词优化
  • 网站的流量建设和县网站设计
  • 网站建设公司有哪几家景洪网站建设
  • 郑州app网站公司品牌营销专业
  • 一般做门户网站多少钱网站建设与维护 目录
  • 太平洋车险报价入口微博seo营销
  • 如何新建一个网站甘肃省住房和建设厅网站首页
  • 南京电商网站设计网站联盟如何实现
  • 如何建立营销性企业网站论文页游赚钱
  • 长沙 网站设计 公司价格客户关系管理系统软件
  • 怎么做网站背景图片商城网站建设如何
  • 招标网站建设申请做网站的猫腻
  • 建个什么网站吗网站如何做微信支付链接
  • 做书籍封皮的网站山东聊城建设学校官网
  • 珠海网站建设 金蝶wordpress进度条插件
  • 放心网站推广优化咨询add filters Wordpress