SqlSugar之SqlQueryDynamic返回值处理
现在有个需求,有一张表每个月表名都会变的,但结构是一样的,我们不能再用类映射来完成的,我不能每个月都去手动添加,我们只能使用sql语句来完成这个需求。为了方便我这边选择的是SqlQueryDynamic返回dynamic类型来处理。dynamic是我们的动态类型,还是比较方便的。dynamic不能直接 as Objct,如果想那只能循环每个dynamic,然后进行属性赋值,这样太麻烦了。我们需要用json来进行过度,json相当于是我们的桥梁,dynamic——>强Class的桥梁。
环境:用的是Oracle数据库,其他是一样的。
①拼接我们的sql语句
//根据需求拼接你的表名
string tableName = $"T_YKP_POSITION{year}_{months}";
//查询返回dynamic类型,因为是Oracle数据库,返回的列都是大写
//特别注意:dynamic这里是数组
dynamic dyList = dbOracle.Db.Ado.SqlQueryDynamic($@"
SELECT Id,Userid,Distance,Speed,Deviate,Gettime,Glng,Glat,Blng,Blat,Intervaltime,Itype,Createdate
from {tableName} where Gettime>=TO_DATE(TO_CHAR(sysdate,'yyyy-mm-dd'), 'yyyy-mm-dd,hh24:mi:ss') order by GETTIME
");
②利用json进行转换
//先把动态类型转json字符串
string json = JsonConvert.SerializeObject(dyList);
//json转强类型,TYkpPositionComm 是我们根据列创建的强类型用来接受的
List<TYkpPositionComm> result = JsonConvert.DeserializeObject<List<TYkpPositionComm>>(json);
TYkpPositionComm类:
public partial class TYkpPositionComm
{
public string ID { get; set; }
public string USERID { get; set; }
public decimal? DISTANCE { get; set; }
public decimal? SPEED { get; set; }
public decimal? DEVIATE { get; set; }
public DateTime? GETTIME { get; set; }
public decimal? GLNG { get; set; }
public decimal? GLAT { get; set; }
public decimal? BLNG { get; set; }
public decimal? BLAT { get; set; }
public decimal? INTERVALTIME { get; set; }
public decimal? ITYPE { get; set; }
public DateTime? CREATEDATE { get; set; }
}
这样就可以了
SqlSugar之SqlQueryDynamic返回值处理的更多相关文章
- 再论c#获取存储过程返回值(包括SqlSugar)
其实这个问题好多年以前研究过: https://blog.csdn.net/xpnew/article/details/6909902 最近因为需要统计日结月结,给同事写了一套调用存储过程的代码.同时 ...
- socket读写返回值的处理
在调用socket读写函数read(),write()时,都会有返回值.如果没有正确处理返回值,就可能引入一些问题 总结了以下几点 1当read()或者write()函数返回值大于0时,表示实际从缓冲 ...
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...
- 由Dapper QueryMultiple 返回数据的问题得出==》Dapper QueryMultiple并不会帮我们识别多个返回值的顺序
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 今天帮群友整理Dapper基础教程的时候手脚快了点,然后遇到了一个小问题,Dapp ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值
Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...
- SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改
有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...
- 支持多返回值存储过程的SqlHelper
public readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionS ...
- sql语句返回值的问题
由于执行sql语句的时候执行成功或者失败会返回执行的影响函数,用list是因为查询的结果可能为null也可能set后放到集合里去: 所以返回值类型用int
随机推荐
- json数据的存储与读取
1. json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...
- jQuery前端数据通用验证库,解放你的双手
这个简易的验证库,应该能完成90%的基本验证,包括失去焦点时的验证,以及点击提交按钮时的验证.后端的那我就无能为办了,只能是谁用就谁自个儿去写了:). 先上一段调用的代码吧,JS代码说少也不少了,就不 ...
- 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP
前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第2篇,开闭原则OCP(The Open/Closed Principle ). 开闭原则的描述是: Software ...
- java使用poi.3.10读取excel 2007以上版本(xlsx格式)
1.在使用过程中,一直报错 throw new ClassNotFoundException(name);原因:没有导入xmlbeans-2.6.0.jar包,建议在使用poi时,将所有包都导入进工程 ...
- css3轮播渐显效果 2016/11/29
css3因为其兼容性的问题,被我忽略很久,这次正好做到一个轮播渐显的效果,想了想,正好复习下css3的相关内容,废话不多说,直接上代码. <ul class="cb-slideshow ...
- mysql应用学习-解决数据乱码
原因 mysql数据库character_set_database和character_set_server默认编码是latin1,所以导致乱码: 修改步骤 step1. 修改my.ini配置 在[m ...
- 比较详细的mysql的几种连接功能分析,只要你看完就能学会的好东西
下面是例子分析表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 ...
- 用JQ帮你实现动画导航 手风琴是导航与下拉导航
1.手风琴式导航,既可以适用于移动端也可使用与PC端 <!DOCTYPE html> <html> <head> <meta charset="UT ...
- 详细分析UserLock如何保证高校内部信息安全
俄克拉荷马城市公立学校的IT团队负责该片区接近43000个学生的网络管理工作.长期以来,学生和教师员工共享Windows网络登录为他们带来了很多难题. 由于没有并发登录的限制,也不能对网络使用情况进行 ...
- SharePoint 2013 - Workflow Manager
1. Workflow Manager可以与SharePoint 安装在同一台机器上,只是不建议这么做:由于Workflow Manager 需要使用数据库,我个人将其安装在 SQL Server机器 ...