Winform开发框架 - 通用高级查询界面frmAdvancedSearch
作者:C/S框架网|www.csframewo  发布日期:2021-10-10 18:06:42
  Winform开发框架 - 通用高级查询界面frmAdvancedSearch


Winform开发框架 - 通用高级查询界面frmAdvancedSearch


C/S架构快速开发平台提供高级查询功能 - 自定义查询条件搜索数据,Winform开发框架 - 通用高级查询界面frmAdvancedSearch,实现接口:ISupportAdvancedSearch

框架版本:CSFramework 旗舰版V5.1



ISupportAdvancedSearch接口



C# Code:

/// <summary>
/// 支持高级搜索功能
/// </summary>
public interface ISupportAdvancedSearch
{
  
/// <summary>
  
/// 高级查询条件类型
  
/// </summary>
  
AdvancedSearchResult ResultType { get; set; }
  
  
/// <summary>
  
/// 高级搜索的方法
  
/// </summary>
  
/// <param name="whereSQL">高级搜索组合的查询条件</param>
  
/// <returns>返回查询的对象</returns>
  
object AdvancedSearch(string whereSQL);
  
  
/// <summary>
  
/// 高级搜索的方法
  
/// </summary>
  
/// <param name="whereSQL">高级搜索组合的查询条件,如:where Code=@Code</param>
  
/// <param name="parameters">查询参数</param>
  
/// <returns></returns>
  
object AdvancedSearch(string whereSQL, DbParameterModel[] parameters);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761



DbParameterModel 类



C# Code:

public class DbParameterModel
{
  
/// <summary>
  
/// 自定义符号标识,用于替换为参数符号
  
/// </summary>
  
public const string ParamSymbol = "#P#";
  
  
/// <summary>
  
/// 参数名称,字段名称, 如:#P#Name
  
/// </summary>
  
public string ParamName { get; set; }
  
  
/// <summary>
  
/// 参数值,用户输入的值,如:小李
  
/// </summary>
  
public object ParamValue { get; set; }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761



AdvancedSearchResult 枚举



C# Code:

/// <summary>
/// 高级查询条件类型, 支持两种模式:SQL拼接, SQL参数
/// </summary>
public enum AdvancedSearchResult
{
  
/// <summary>
  
/// Where SQL语句
  
/// </summary>
  
WhereSQL,
  
  
/// <summary>
  
/// DB参数
  
/// </summary>
  
DbParamList,
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761



CSFramework 旗舰版V5.1 系统操作日志功能演示



贴图图片-高级查询功能111




贴图图片-高级查询功能222


BLL层实现, bllLog.cs

*** 实现ISupportAdvancedSearch接口 *** 


C# Code:

/// <summary>
/// 【系统操作日志】管理界面业务逻辑层, 支持高级查询
/// </summary>
public class bllLog : ISupportAdvancedSearch
{
  
  
//省略代码....
  

  
public AdvancedSearchResult ResultType { get; set; } = AdvancedSearchResult.DbParamList;
  
  
  
public object AdvancedSearch(string whereSQL)
  {
    
return null;
  }
  
  
public object AdvancedSearch(string whereSQL, DbParameterModel[] parameters)
  {
    
if (BridgeFactory.IsADODirect)
    
return (_Log as dalLog).AdvancedSearch(whereSQL, parameters);
    
else
    
throw new Exception("此案例没实现WCF接口,请使用直连模式!");
  }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





DAL层实现, dalLog.cs


C# Code:

/// <summary>
/// 高级查询 - 查询条件参数化
/// </summary>
/// <param name="whereSQL"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public object AdvancedSearch(string whereSQL, DbParameterModel[] parameters)
{
  
string sql = "SELECT * FROM sys_LogOperation WHERE 1=1 ";
  
  CommandHelper cmd
= _Database.CreateCommand("");
  
string p = _Database.ParamSymboName;//SQL参数符号
  
  
//有查询条件
  
if (!String.IsNullOrWhiteSpace(whereSQL))
  {
    
//替换参数符号
    
whereSQL = whereSQL.Replace(DbParameterModel.ParamSymbol, p);
    sql
= sql + " AND " + whereSQL;
    
if (parameters != null)
    {
      
foreach (DbParameterModel m in parameters)
      {
        
//替换参数符号
        
cmd.AddParam(m.ParamName.Replace(DbParameterModel.ParamSymbol, p), m.ParamValue);
      }
    }
  }
  
  
//返回DataTable
  
cmd.Command.CommandText = CodeSafeHelper.GetSafeSQL(sql);
  
return _Database.GetTable(cmd.Command, sys_LogOperation.__TableName);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761







C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇