数据库组件 Hxj.Data (十) (输出组件执行的sql)
2010-05-17 14:19
337 查看
前面有TX留言问分页的sql是怎么样的,看完这篇你也就知道了。
组件可以输出执行的sql,方便查看sql生成的语句是否有问题。
通过注册事件来输出sql
然后通过执行
来注销注册的事件。
这里是例子是asp.net
执行上面的语句输出的sql语句如下:
再来一个
生成的sql语句如下
这下组件生成的sql语句可以一目了然了,sql语句的输出也大大方便了调试。
下一节将讲述WhereClip(条件)的生成。
组件可以输出执行的sql,方便查看sql生成的语句是否有问题。
通过注册事件来输出sql
DbSession.Default.RegisterSqlLogger(database_OnLog);
private string sql; void database_OnLog(string logMsg) { //保存执行的DbCommand (sql语句和参数) sql += " " + logMsg; }
然后通过执行
DbSession.Default.UnregisterSqlLogger(database_OnLog);
来注销注册的事件。
这里是例子是asp.net
DbSession.Default.From() .InnerJoin(Suppliers._.SupplierID == Products._.SupplierID) .Page(10, 2) .Select(Products._.ProductID, Products._.ProductName) .ToDataTable();
执行上面的语句输出的sql语句如下:
SELECT * FROM ( SELECT TOP 10 * FROM ( SELECT TOP 20 [Products].[ProductID],[Products].[ProductName] FROM [Products] INNER JOIN [Suppliers] ON ([Suppliers].[SupplierID] = [Products].[SupplierID]) ORDER BY [Products].[ProductID] ASC) AS tempIntable ORDER BY [ProductID] DESC) AS tempOuttable ORDER BY [ProductID] ASC
再来一个
DbSession.Default.From().Where(Products._.CategoryID == 2).ToFirst();
生成的sql语句如下
Text: SELECT TOP 1 * FROM [Products] WHERE [Products].[CategoryID] = @ae2b9c6a112545e5b56fa6dc70f32ac1 Parameters: @ae2b9c6a112545e5b56fa6dc70f32ac1[Int32] = 2
这下组件生成的sql语句可以一目了然了,sql语句的输出也大大方便了调试。
下一节将讲述WhereClip(条件)的生成。
相关文章推荐
- 数据库组件 Hxj.Data (十) (输出组件执行的sql)
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 数据库组件 Hxj.Data (九) (DbSession的其他介绍)
- 数据库组件 Hxj.Data (十一) (where条件)
- 数据库组件 Hxj.Data (十二) (模糊查询、简单的in,not in查询)
- 数据库组件 Hxj.Data (五)(更新操作篇)
- 数据库组件 Hxj.Data (十二) (模糊查询、简单的in,not in查询)
- SqlDataReader执行带输出参数存储过程 错误分析
- 报错:此版本的SQL Server Data Tools与此计算机中安装的数据库运行时组件不兼容
- C# 数据库sql中用参数的方法来执行UPDATE命令,实现更新dataTime类型
- 数据库组件 Hxj.Data (二十二) (缓存)
- 数据库组件 Hxj.Data (二十二) (缓存)
- 还原数据库“XXX”时失败。System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份。
- 数据库组件 Hxj.Data (十六) (查询的字段)
- 数据库组件 Hxj.Data (十七) (事务)
- 数据库组件 Hxj.Data (四)(添加操作篇)
- 数据库组件 Hxj.Data (六)(删除操作篇)
- 数据库组件 Hxj.Data(七) (sql篇)
- 数据库组件 Hxj.Data (十六) (查询的字段)
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据