zoukankan      html  css  js  c++  java
  • 转载 动软使用心得

      

    使用心得如下:

    工厂模式:

    一、利用动软生成项目,设置顶级命名空间。
    二、打开所生成的项目,检查每一层是否为独立的程序集。特别是接口,好像不是以第一步设置的顶级命名空间命名的。

    三、DBUtility 中的命名空间,不是以上面的顶级开始的,而是 Maticsoft(动软)。并且要添加引用 LTP.Accounts,在Lib 下。????不添加先试试
    三、检查数据层DAL是否实现了接口。(自动代码已经实现了)
    四、请检查BLL层是否添加了对DAL(SQLServerDAL)的项目引用。(自动代码没有添加)
    五、web.config 文件中,添加或修改为 <add key="DAL" value="RR.SQLServerDAL"/>

    以上几步可以保证反射创建对象正常使用。

    五、web 文件夹下的 App_Themes 文件夹,如果要,可以保留,如果不要,就要修改 web.config 中的 Theme 属性,否则,找不到BlueTheme 主题。

    六、保留 web 文件夹下的 web.config 作参考。
    七、保留 web 文件夹下的每个数据表的基本操作(显示、修改、添加)页面 .aspx 和 .aspx.cs ,以备参考。
    八、删除 web 文件夹下其余的所有文件。

    九、在“解决方案管理器”添加自己的网站,“新建网站”。
    十、将原来的 web.config 复制到新的网站,或参考着修改新网站的 web.config。

    十一、给自己的网站添加项目引用:Model、BLL,好像只要添加了 BLL,一生成,就会自动添加 Model、DALFactory、DBUtility、IDAL、OracleDAL、SQLServerDAL引用。

    十二、使用时,只要以顶级命名空间开始,就可以使用。

    十三、关于排序
    GetList( string strWhere )函数,可以通过添加:“1=1 order by 字段名 DESC"”来进行排序。

    十四、添加自己的 Common.cs,可以列举系统运行需要的枚举。
    十五、添加自己的 Param.cs,提取 Web.config 中的配置信息,以后使用,直接从类中提取。当然,需要项目引用 System.Configuration(添加引用,并 using)。
    十六、实现分页,动软代码中打开分页:
    1、BLL 中打开
    2、IDAL 中打开
    3、DAL 中打开
    其中:DAL 中的代码更改为以下代码:
            /// <summary>
            /// 分页获取数据列表
            /// IsCount=0 返回记录总数,否则,返回记录集
            /// 分页存储过程UP_GetRecordByPage
            /// </summary>
            public DataSet GetList(int IsCount, int PageIndex, string strWhere)
            {
                //这里,为了不更改动软生成的代码太多部分,
                //将原来的第一个参数PageSize 作为一个标志使用
                //如果PageSize=0 ,即参数IsCount=0
                //则为计算总数
                //在传递给存储过程时,@IsCount=1
                //否则,就接收到了PageSize 的值

                string tableName = "LWord";    //排序表名***********
                string colName = "LWordID";    //排序字段***********

                //得到记录总数,如果保存统一的一个 PageSize,则可以从全局设置中直接取。
                int PageSize = IsCount;
                if (IsCount == 0)     //如果IsCount =0 则,返回记录总数
                {
                    SqlParameter[] parameters = {
                        new SqlParameter("@tblName", SqlDbType.VarChar, 255),
                        new SqlParameter("@fldName", SqlDbType.VarChar, 255),
                        new SqlParameter("@PageSize", SqlDbType.Int),
                        new SqlParameter("@PageIndex", SqlDbType.Int),
                        new SqlParameter("@IsReCount", SqlDbType.Bit),
                        new SqlParameter("@OrderType", SqlDbType.Bit),
                        new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
                    };
                    parameters[0].Value = tableName;
                    parameters[1].Value = colName;
                    parameters[2].Value = PageSize;
                    parameters[3].Value = PageIndex;
                    parameters[4].Value = 1;      //@IsReCount 1 (非)返回总数,否则,返回记录集
                    parameters[5].Value = 1;
                    parameters[6].Value = strWhere;

                    return DbHelperSQL.RunProcedure("UP_GetRecordByPage", parameters, "ds");
                }
                else
                {
                   
                      
                    SqlParameter[] parameters = {
                        new SqlParameter("@tblName", SqlDbType.VarChar, 255),
                        new SqlParameter("@fldName", SqlDbType.VarChar, 255),
                        new SqlParameter("@PageSize", SqlDbType.Int),
                        new SqlParameter("@PageIndex", SqlDbType.Int),
                        new SqlParameter("@IsReCount", SqlDbType.Bit),
                        new SqlParameter("@OrderType", SqlDbType.Bit),
                        new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
                        };

                    parameters[0].Value = tableName;
                    parameters[1].Value = colName;
                    parameters[2].Value = PageSize;
                    parameters[3].Value = PageIndex;
                    parameters[4].Value = 0;     //@IsReCount (非)返回总数,返回记录集
                    parameters[5].Value = 1;
                    parameters[6].Value = strWhere;

                    return DbHelperSQL.RunProcedure("UP_GetRecordByPage", parameters, "ds");
                }
            }


    4、在数据库中写如下存储过程:UP_GetRecordByPage(就用这个名字,因为 DAL 中都用的是这个。)

    ------------------------------------
    --用途:支持任意排序的分页存储过程
    --说明:
    ------------------------------------
    CREATE PROCEDURE [dbo].[UP_GetRecordByPageOrder]

    @tblName varchar(255), -- 表名
    @fldName varchar(255), -- 显示字段名
    @OrderfldName varchar(255), -- 排序字段名
    @StatfldName varchar(255), -- 统计字段名
    @PageSize int = 10, -- 页尺寸
    @PageIndex int = 1, -- 页码
    @IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
    @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
    @strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
    AS
    declare @strSQL varchar(6000) -- 主语句
    declare @strTmp varchar(100) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
    declare @strOrder varchar(400) -- 排序类型
    if @OrderType != 0
    begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' + @OrderfldName +'] desc'
    end
    else
    begin
    set @strTmp = '>(select max'
    set @strOrder = ' order by [' + @OrderfldName +'] asc'
    end
    set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['
    + @tblName + '] where [' + @OrderfldName + ']' + @strTmp + '(['
    + @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @OrderfldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
    + @strOrder
    if @strWhere != ''
    set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['
    + @tblName + '] where [' + @OrderfldName + ']' + @strTmp + '(['
    + @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @OrderfldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
    + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
    if @PageIndex = 1
    begin
    set @strTmp = ''
    if @strWhere != ''
    set @strTmp = ' where ' + @strWhere
    set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['
    + @tblName + ']' + @strTmp + ' ' + @strOrder
    end

    if @IsReCount != 0
    set @strSQL = @strSQL+' select count(1) as Total from [' + @tblName + ']'
    if @strWhere!=''
    set @strSQL = @strSQL+' where ' + @strWhere
    exec (@strSQL)


    2,
    ------------------------------------
    --用途:分页存储过程(对有主键的表效率极高)
    --说明:
    ------------------------------------
    CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
    @tblName varchar(255), -- 表名
    @fldName varchar(255), -- 主键字段名
    @PageSize int = 10, -- 页尺寸
    @PageIndex int = 1, -- 页码
    @IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
    @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
    @strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
    AS
    declare @strSQL varchar(6000) -- 主语句
    declare @strTmp varchar(100) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
    declare @strOrder varchar(400) -- 排序类型
    if @OrderType != 0
    begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' + @fldName +'] desc'
    end
    else
    begin
    set @strTmp = '>(select max'
    set @strOrder = ' order by [' + @fldName +'] asc'
    end
    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
    + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
    + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
    + @strOrder
    if @strWhere != ''
    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
    + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
    + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
    + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
    if @PageIndex = 1
    begin
    set @strTmp =''
    if @strWhere != ''
    set @strTmp = ' where ' + @strWhere
    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
    + @tblName + ']' + @strTmp + ' ' + @strOrder
    end
    if @IsReCount != 0
    set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
    exec (@strSQL)

    原文地址:

    http://hi.baidu.com/shichaoyang251/blog/item/99310e030f03388fd53f7c7f.html

  • 相关阅读:
    Nodejs下载和第一个Nodejs示例
    永久关闭Win10工具栏的TaskbarSearch控件
    对称加密,非对称加密,散列算法,签名算法
    【转】TTL和RS232之间的详细对比
    zlg核心板linux系统中查看系统内存等使用信息
    Power BI后台自动刷新数据报错 The operation was throttled by Power BI Premium because there were too many datasets being processed concurrently.
    剪切板和上传文件内容获取
    CSS, LESS, SCSS, SASS总结
    文字程序
    electron 打包“ERR_ELECTRON_BUILDER_CANNOT_EXECUTE”
  • 原文地址:https://www.cnblogs.com/yym/p/1644249.html
Copyright © 2011-2022 走看看