易截截图软件、单文件、免安装、纯绿色、仅160KB

数据库组件 Hxj.Data (十) (输出组件执行的sql)

前面有TX留言问分页的sql是怎么样的,看完这篇你也就知道了。 组件可以输出执行的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(条件)的生成。




相关文档:

SQL Server 2000连接中的四个最常见错误

一."SQL Server 不存在或访问被拒绝"
这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.
一般说来,有以下几种可能性:
1,SQL Server名称或IP地址拼写有误
2,服务器端网络配置有误
3,客户端网络配置有误
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.
============= 首先,检查网络 ......

sql server2005 建表遇到的问题.

在sqlserver2005中用sql语句写代码,生成数据表
CREATE TABLE [t_ActivityRecord] (
[activityId] [nchar]  (10) NOT NULL,
[activityName] [nvarchar]  (50) NOT NULL,
[activityMark] [decimal]  (18,3) NOT NULL,
[activityStatement] [ntext]  NOT NULL,
[activityDateTime] [date]  NOT ......

数据批量导入远程SQL服务器的亲身实践

  目的:将数据批量导入远程服务器
  环境:SQL软件,EXCEL软件,VS2005软件,本地两个机器上都有SQL数据库,而且数据存放在其中一个表。
  操作实践
  1、用远程数据库的ip、用户名、密码在本地登录;
  2、结果,其中一个机器能登录,一个不能登录(以下操作在可登录的机器上完成);
  3、第一次我想通 ......

SQl Xml和C# Xml数据的一点操作总结

SQl Xml和C# Xml数据的一点操作总结
在此申明Xml是InfoSet数据不是字符串,所以在此强烈反对用string拼接xml。数据库可以存放xml类型数据,那么该数据的具体操作又如何了。
1.首先建立一张含有xml数据类型的表
CREATE TABLE [dbo].[TestXml](
 [ID] [bigint] IDENTITY(1,1) NOT NULL,
 [Message] [xml] NULL ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号