当前位置/ List
DevNet帮助中心 >> ScriptQuery帮助说明
ScriptQuery类说明

发布日期:2013-05-25       浏览:6043 次
ScriptjQuery类是使用参数模式封装了SQL脚本语句类,让开发人员可以以面向对象的方式编写SQL脚本
命名空间:DevNet.DBAccess
配置文件:
折叠XML/HTML Code复制内容到剪贴板
  1. <appSettings>  
  2. <!--输出SQL脚本位置,用于调试,默认不输出;有两个选择:Trace(调试窗口) Log(文本文件日志输出)-->    
  3. <add key="WriteScriptSQL" value=""/>  
  4.  
  5. <!--是否sql2000数据库,默认false(SQL2000数据库使用,分页语句与SQL2005数据库不同)--> 
  6. <add key="IsSql2000" value="false"/>
  7. </appSettings>  
构造函数:
折叠C# Code复制内容到剪贴板
  1.   /// <summary>  
  2.   /// ScriptQuery 提供简单的数据操作帮助  
  3.   /// </summary>  
  4.   /// <param name="tableName"></param>  
  5.   public ScriptQuery(string tableName)  
  6.   
  7.   /// <summary>  
  8.   /// ScriptQuery 提供简单的数据操作帮助  
  9.   /// </summary>  
  10.   /// <param name="dbCon">连接对象</param>  
  11.   /// <param name="tableName">操作的表名</param>  
  12.   public ScriptQuery(DBConnect dbCon, string tableName)  
  13.     
  14.   /// <summary>  
  15.   /// ScriptQuery 提供简单的数据操作帮助  
  16.   /// </summary>  
  17.   public ScriptQuery()  
从构造函数可以看出,数据底层的核心操作类为 DBConnect类 
类中的SQL脚本的关键字都使用常量方式声明,以减少字符串的内存占用,提供运行性能;
使用示例:
1. 获取列表List<Users>(Users为实体)
    调用方法为:
C# Code复制内容到剪贴板
  1.  //ScriptQuery实例,并传入表名;
  2. ScriptQuery script=new ScriptQuery(Users.Users_TableName); 
  3.  
  4. //获取用户名like “net”的用户列表
  5. List<Users> lists = script.Select().ALL().From().Where().Like(Users.UserName_FieldName,"net").GetList<Users>();  
    通过以上语句即可获取用户集合列表;
2. 获取DataTable
    调用方法:
C# Code复制内容到剪贴板
  1. //ScriptQuery实例,并传入表名;  
  2. ScriptQuery script=new ScriptQuery(Users.Users_TableName);   
  3.    
  4. //获取用户名like “net”的用户表,返回DataTable  
  5. DataTable dt = script.Select().ALL().From().Where().Like(Users.UserName_FieldName,"net").GetDataTable();  
    通过以上语句即可获取用户集合的内存表;
3. 获取分页列表
    调用方法:
C# Code复制内容到剪贴板
  1. //创建实例
  2. ScriptQuery script = new ScriptQuery(Users.Users_TableName);   
  3. //设置执行脚本
  4. script.Select().ALL().From().Where().Like(Users.UserName_FieldName,"net");
  5.  
  6. //设置pageIndex,pageIndex>0
  7. script.PageIndex =pageIndex;  
  8. //设置pageSize,PageSize>0
  9. script.PageSize = pageSize;  
  10.  
  11. //这里返回了分页的用户集合列表
  12. List<Users> lists = script.GetList<Users>();  
  13. //设置总记录数
  14. int recordCount = Script.RecordCount;  
    通过以上语句即可实现分页信息的执行操作
4. 自定义语句执行
    调用方法:
C# Code复制内容到剪贴板
  1. //ScriptQuery实例   
  2. ScriptQuery script=new ScriptQuery();     
  3.      
  4. //获取用户名like “net”的用户表,返回用户列表集合,使用自定义sql语句和命令参数  
  5. script.Value="Select * from Users where UserName like N'%+@UserName+%'";  
  6. //添加命令参数和参数值    
  7. script.AddCmdParameters("@UserName","net");  
  8. List<Users> lists = Script.GetList<Users>();    
     通过以上语句即可实现自定义语句的执行操作;
5. 操作存储过程
    调用方法:
C# Code复制内容到剪贴板
  1. ScriptQuery script = new ScriptQuery();
  2. //使用存储过程  
  3. script.Value = "存储过程名称";  
  4.  
  5. //设置Script命令类型为存储过程  
  6. script.CmdType = CommandType.StoredProcedure;  
  7.  
  8. //获取存储过程参数,默认将参数放入缓存 4.5.1.35版本后修改为接口方式  
  9. //System.Data.Common.DbParameter[] ps =   DevNet.DBAccess.DBProcedureParams.GetSpParameter("存储过程名称");  
  10. System.Data.IDbDataParameter[] ps =   DevNet.DBAccess.DBProcedureParams.GetSpParameter("存储过程名称");  
  11. /*
  12. *设置参数ps的值
  13. *ps[0].Value=......
  14. *ps[1].Value=......
  15. *.......
  16. *在DataManger说明中会讲到如何批量设置存储过程参数的值
  17. */
  18. //设置Script命令执行参数
  19. script.SetCmdParameters(ps);  
  20. List<Users> lists= script.GetList<Users>();
    通过以上语句即可实现调用存储过程执行操作