使用动软代码生成器的注意事项

使用动软代码生成器的注意事项

C# 2011-01-17 21:58:39 阅读21 评论0   字号: 订阅

使用动软代码生成器的注意事项

工厂模式:

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

三、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://blog.163.com/jian-zou/blog/static/34866055201101795839687/

转载于:https://www.cnblogs.com/Spirithero/archive/2011/03/29/1998589.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5视差滚动效果,视差滚动效果

插件描述&#xff1a;制作视差滚动效果The meat and potatoes. Invoking these will move that page in from that side.parallax.bar.left(); //Bar slides in from the leftparallax.foo.top(); //bringing back foo from the topparallax.bar.bottom(IAmBack()); //We got c…

Oracle--基础

Oracle数据库的体系结构 数据库: databaseOracle数据库是数据的物理存储,和mysql不一样的是,只要我们愿意,我们就可以在mysql下创建任意的数据库,每个新项目的启动,创建一个数据库,然后通过showdatabases可以查看到全部数据库,但是Oracle的数据库是一个操作系统只有一个库,说白…

python自动化测试常见面试题二_思考|自动化测试面试题第二波

本内容为企业面试关于自动化测试的考题&#xff0c;大家可以自己思考下如何作答&#xff0c;欢迎把答案留言到本文下方哦。问题1&#xff1a;设计接口测试⽤用例例时&#xff0c;涉及的是电商系统&#xff0c;其中包括很多修改&#xff0c;如商品、商家、店铺等等&#xff0c;针…

html动态跟随鼠标效果,使用JS实现气泡跟随鼠标移动的动画效果

气泡跟随鼠标移动&#xff0c;并在每次点击时产生不同的变化效果如下简单的气泡效果body{background-color:#000000;margin:0px;overflow:hidden}var canvas document.createElement(canvas),context canvas.getContext(2d),windowW window.screen.width ,windowH window.s…

raspberry ssh 允许 root 登录

参考链接 csdn 转载于:https://www.cnblogs.com/eat-too-much/p/11153213.html

python开发转行做数据分析_转行学IT,Java、Python、大数据选择学哪个发展好?

对薪资不满意、担心自己以后不好找工作&#xff0c;不少人都会选择参加培训&#xff0c;转行IT行业。当然很多想要转行IT的人&#xff0c;都会犹豫选择哪门编程语言学习比较好&#xff0c;Python、Java、大数据作为比较热门行业技术&#xff0c;不少人都很疑惑转行学Java、Pyth…

html显示线条流动效果,css3实现线条流动效果

1实现原理&#xff1a;通过animation中的clip实现对div的不断切割首先要弄懂clip的含义&#xff0c;四个参数分别是上右下左&#xff0c;以上和左为标准。clip使用的前提是元素绝对定位。本来想实现这样效果看起来是需要3个div&#xff0c;但是根据前人的经验&#xff0c;使用b…

mysql 解析sql文件

简介 如何使用 本地mysql 解析sql文件 方法 参考链接 cnblogs 看三.创建数据库 参考链接 runoob 看选择数据库 参考链接 cnblogs 看往mysql中导入SQL文件 转载于:https://www.cnblogs.com/eat-too-much/p/11153383.html

html的数据类型有哪些,数据库数据类型有哪些

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型&#xff0c;大致可以分为三类&#xff1a;数值、日期/时间和字符串(字符)类型。推荐教程&#xff1a;MySQL入门视频教程一、数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类…

2021 河南 高考成绩查询,2021河南高考成绩查询入口

随着高考结束&#xff0c;高考阅卷工作陆续启动&#xff0c;已有多个省份公布了查分时间&#xff0c;那我们知道河南高考时间是什么时候嘛?下面是小编整理2021河南高考成绩查询入口_2021河南高考查分时间公布&#xff0c;仅供参考&#xff0c;希望能够帮助到大家。2021河南高考…

人脸检测算法_腾讯已开源高精度人脸检测算法DSFD

腾讯提出一种高精度双分支人脸检测器DSFD并开源。该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一。任务介绍人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输出)&#xff0c;是人脸配准、人脸属性识别、人脸核身、人脸检索等技术的基础。随着人…

java之struts2之数据检验

1.使用struts2时&#xff0c;有时候需要对数据进行相关的验证。如果对数据的要求比较严格&#xff0c;或对安全性要求比较高时&#xff0c;前端 js 验证还不够&#xff0c; 需要在后端再进行一次验证&#xff0c;保证数据的安全性。 2.struts2提供了两种机制来进行后端的数据验…

sdk开发包如何使用_SDK如何使能行业?华为昇腾要用软件充分释放硬件性能

谈及落地&#xff0c;软件永远是激发硬件性能的核心。自AI出现&#xff0c;围绕传统产业“智能化转型”的探讨就一直没有停下。而随着“新基建”口号的喊出&#xff0c;工业制造等场景的智能化进程更是被加上了助推器。以智能制造为例&#xff0c;依据Markets报告所预计的&…

vue入门:(组件)

模板&#xff1a;&#xff08;template&#xff09;模板声明了数据和最终展现给用户的DOM之间的映射关系。初始数据&#xff1a;&#xff08;data&#xff09;一个组件的初始数据状态。对于可复用的组件来说&#xff0c;通常是私有的状态。接收外部参数&#xff1a;&#xff08…

鹿邑2021高考成绩查询,鹿邑中考成绩查询2021

2021鹿邑中考成绩查询时间方法&#xff1a;91中考网消息&#xff1a;2021年鹿邑中考即将开始&#xff0c;在中考后&#xff0c;广大考生最关心的无疑就是中考成绩查询方法、鹿邑中考成绩什么时候公布&#xff1f;&#xff0c;根据往年经验&#xff0c;小编收集整理了2021鹿邑中…

excel删除行 uipath_学会这8个Excel神技巧,轻松告别零基础!

无论你是个学生还是职场中人&#xff0c;谁不知道Excel呢&#xff1f;尤其是办公一族&#xff0c;总是不可避免会使用到Excel。下面小电就向大家介绍8个神技巧&#xff0c;让你的工作量大大减少&#xff01;那什么技巧有如此威力呢&#xff1f;想必有些大家都用过的&#xff0c…

IIS7.5下的asp.net网站不能连接数据库

今天报了一错就是"找不到Table[0]" 感觉是没有连到数据库。 处理方法&#xff1a;把连接字符串由windows身份验证改成 sqlserver验证就好了 我不知道为什么这么做&#xff01;等待高手给我解答转载于:https://www.cnblogs.com/master-zhu/archive/2010/07/20/17810…

jq在html中添加dom元素,使用jQuery添加DOM元素的最佳方法

所以我已经看到了三种向页面添加html/DOM元素的方法.我很好奇他们每个人的利弊是什么.1 - 传统的JavaScript我相信直接的JS方法是通过构造每个元素,设置属性,然后附加它们.例:var myRow document.createElement("tr");myRow.class "myClass";var firstTD…

qt 5编程入门(第2版)_《C++并发编程实战第2版》第六章:设计基于锁的并发数据结构(1/3)...

本章主要内容设计并发数据结构的含义设计指南并发数据结构的示例实现在上一章中我们了解了底层原子操作和内存模型。本章我们先把底层的细节放一放(尽管在第7章我们将需要它们)&#xff0c;探讨一下数据结构。为编程问题选择数据结构可能是整个解决方案的关键部分&#xff0c;并…

数据I/O流

文件输出流的应用。定义如下字符串&#xff1a;String str “12345abcdef#%&*软件工程”;编写程序将该字符串写入文件”data.txt”。package homework;import java.io.*;public class IO { public static void main(String[] args) throws IOException{ // TODO Auto-gene…