SubSonic3.0使用外连接查询时查询不出数据的问题修改

简介:

 今天在开发时,要使用到外连接查询,如图

  

 

  老是查不出数据,所以就追踪了一下代码,发现查询后生成的SQL语句变成了内连接了,真是晕

  

 

  然后继续Debug,发现原来SqlQuery类在调用LeftInnerJoin函数时传入的Join.JoinType.LeftInner参数,并没有被CreateJoin函数使用上,如下图

  

 

  所以赶快修改为type,见图

  

 

  心想应该可以了吧......继续执行程序,发现还是没有查询出数据来~~~真是郁闷......继续Debug,发现SQL语句还是有问题,见图

  

  语句中多了一个INNER,所以查询直接爆错退出了,继续跟踪Debug,但是找来找去都没有发现在哪里组合语句的,@_@

  认真研究了一下,发现是从Join类的GetJoinTypeValue函数返回连接字符串的,如下图

  

  就尝试修改了一下返回的字串,见图

  

 

  最后执行程序,生成的SQL语句终于正常了

  

 

  这个Bug其实并不是很复杂,只要多使用Debug跟踪,多尝试修改(就算改错了也无所谓),才能找出问题所在

 


    本文转自 AllEmpty 博客园博客,原文链接:http://www.cnblogs.com/EmptyFS/p/3335311.html,如需转载请自行联系原作者






相关文章
|
8月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
8月前
|
SQL 数据库
SQL标识列实现自动编号的步骤和技巧以及优势
SQL标识列实现自动编号的步骤和技巧以及优势
156 0
|
SQL 关系型数据库 MySQL
sql处理重复的列,更好理清分组和分区
sql处理重复的列,更好理清分组和分区
95 0
|
存储 关系型数据库 MySQL
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
142 0
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
|
SQL 关系型数据库 MySQL
MySQL基础-表操作~修改数据
修改数据的具体语法为: UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;
154 0
|
存储 SQL Java
Mysql数据库表字段设计优化(状态列)
初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。
670 0
Mysql数据库表字段设计优化(状态列)
|
SQL 存储 关系型数据库
DQL 之基础查询之列控制|学习笔记
快速学习 DQL 之基础查询之列控制
109 0
DQL 之基础查询之列控制|学习笔记
|
数据库
【TP5】根据数据库字段注释使用同一模板进行增删查(1)
【TP5】根据数据库字段注释使用同一模板进行增删查
172 0
【TP5】根据数据库字段注释使用同一模板进行增删查(1)
|
数据库
【TP5】根据数据库字段注释使用同一模板进行增删查(2)
【TP5】根据数据库字段注释使用同一模板进行增删查
124 0
【TP5】根据数据库字段注释使用同一模板进行增删查(2)