『 天道酬勤 』 李天平的博客


君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。
posts - 127, comments - 2848, trackbacks - 83, articles - 18
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
考虑到一些朋友的建议,继续保留和兼容Net1.1版的开发。对1.9.6版做了一点完善。
该版本:
1.对查询分析器做了一些完善。
2.优化了DAL和DALFactory的代码,减少了一些代码量。
3.修正了一些其他的bug及对1.9.6版的完善。

软件的功能信息可以查看:.Net代码自动生成器 介绍。

 V1.9.7 版下载点这里

示例项目源码下载

最新版信息及下载

Feedback

评论共2页: 上一页 1 2 

#15楼  回复 引用   

2006-03-18 14:38 by [天道酬勤]
@TYW,@yzty,这个版本还是1.1的,2.0版将支持.net2.0.
@weijunzi,如果是winform程序,你需要改一下缓存的方式了。
@PCER,@xcyapcc,在考虑生成不同语言版本的代码了,后期版本会考虑加入。
@小黄,sa是SQL Server的默认用户名,一般情况下会是空,这要觉得你的服务器设置,这里的登录也是登录你的SQL Server服务器。如果你对SQL Server熟悉就会明白这些。

#16楼  回复 引用   

2006-03-19 00:34 by zhanghw[未注册用户]
如果有VB.Net版本的那就更加完美了!!
感谢李兄^_^

#17楼  回复 引用   

2006-03-20 00:58 by zwx[未注册用户]
2.0什么时候出?盼着

#18楼  回复 引用 查看   

2006-03-20 16:00 by sunw.net      
谢谢继续提供共享
有以下问题1希望能改进:
1.生成存储过程最好能自己选择表的关键字(可单选多选).
2. 存储过程的注释生成位置不对.1.9.7版本以及以前版本中生成存储过程时脚本后, 在数据库中执行脚本不能生成注释. 脚本的注释位置不对,应该在每个Create ... 语句前和 "Go" 之间.

#19楼  回复 引用   

2006-03-21 00:34 by YingcongShaw[未注册用户]
存储过程最好可以支持排序和取前/后 N 条记录的

#20楼  回复 引用   

2006-03-21 10:01 by attend1985#163.com[未注册用户]
我以前用1.94版本的时候,遇到过问题,比如数据库里定义的是varchar(50),生成的存储过程却是varchar(100).(我用的是 MSSQL 2005)刚看到发布新版本了,不知道修正这个BUG没有。-P:多谢楼主开发出这么好的工具。

#21楼  回复 引用   

2006-03-21 10:19 by yekedong@gmail.com[未注册用户]
真是非常好的工具,希望能在数据库连接性能上加以改进!

#22楼  回复 引用   

2006-03-21 10:23 by yekedong@gmail.com[未注册用户]
最好能加上自动事务,一般很少会用ExecuteSqlTran方式,特别是在夸层调用时。

#23楼  回复 引用   

2006-03-21 17:21 by -天道酬勤
@attend1985#163.com
生成数据库文档是调用了office2003的COM组件,你的机器上是否装了office?
@aysun168
1.9.4-1.9.6的很多错误都已完善了,请下载新版本。版本升级总会有进步的。


-- 您的支持,我的动力!相信我们会做的更好!

#24楼  回复 引用   

2006-03-21 17:36 by xcyapcc[未注册用户]
能够对每个字段加备注就更好了啊

#25楼  回复 引用   

2006-03-21 19:15 by 曹金勤[未注册用户]
全力的支持,web界的无私奉贤者,值得大家学习,不过还是希望老兄的好东西将来有天能够商业化,那样可以就会有更多的资本和精力来发展和完善它.学习中...

#26楼  回复 引用   

2006-03-22 22:01 by 邓宾[未注册用户]
试用了1.94版,感觉非常好,加深了我对一些概念的理解,编码工作也轻松多了!非常感谢,正下新的1.97,希望楼主再接再励!!

#27楼  回复 引用   

2006-03-24 10:28 by djd[未注册用户]
SPTED.dll 这是什么?我怎么在卸载1.9.6的时候突然弹出这么一个威胁呢?

#28楼  回复 引用   

2006-03-24 10:54 by -天道酬勤
@djd,本软件里没有这个文件,和软件无关!

#29楼  回复 引用   

2006-03-25 19:13 by 周伟[未注册用户]
支持软件向前发展!

#30楼  回复 引用   

2006-03-26 17:10 by aysun168[未注册用户]
谢谢,感谢楼主的共享精神,正在学习中.....

#31楼  回复 引用   

2006-03-26 21:05 by 周伟[未注册用户]
再支持!支持软件共享!

#32楼  回复 引用   

2006-03-27 12:08 by Leem[未注册用户]
反馈一下几个小小的问题:
1.数据分析器里,查询Datetime类型的数据,只显示日期,不显示时间
2.代码生成器里,生成Model时bigint型的字段,应该对应long,而不应该是int

再提个建议:
数据管理器,数据分析器最好能提供对数据的修改

#33楼  回复 引用   

2006-03-29 17:21 by yzty[未注册用户]
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 75: {
行 76: IUserReg dal = MyTest.DALFactory.UserReg.Create();
行 77: return dal.GetList(strWhere);
行 78:
行 79: }


源文件: D:\Inetpub\wwwroot\MyTest\BLL\UserReg.cs 行: 77

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
MyTest.BLL.UserReg.GetList(String strWhere) in D:\Inetpub\wwwroot\MyTest\BLL\UserReg.cs:77

[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +358
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +482
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2040
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +41
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42

请问这是什么原因?

#34楼  回复 引用   

2006-03-29 17:57 by -天道酬勤
@yzty
1。1.9.7版还不支持 .NET Framework 2.0
2。请参照http://ltp.cnblogs.com/archive/2006/02/18/333295.html常见错误

#35楼  回复 引用   

2006-03-29 18:04 by yzty[未注册用户]
可是你的Demo经过转化到2.0就可以运行的~

#36楼  回复 引用   

2006-03-30 16:04 by 无天刀绝[未注册用户]
oracle连接数据库,生成dal层代码,基于sql语句方式,发现语句是错的,日期类型得竟然没有加上to_date,字符得也没有'',这样的语句是错误得不能执行得,麻烦作者给改改程序啦:)

/// <summary>
/// 增加一条数据
/// </summary>
public int Add(TEST.Model.TL_YW_RJH model)
{
model.ID=GetMaxId();
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into TL_YW_RJH(");
strSql.Append("P_JHRQ,TBRQ,TBR,P_RJHH,F_HWDM,F_DZDM,F_SHDWDM,JHCS,SPCS,SPBJ,JHZT,BEIZHU");
strSql.Append(")");
strSql.Append(" values (");
strSql.Append(""+model.P_JHRQ+",");//这行是日期啦
strSql.Append(""+model.TBRQ+",");//这行是日期啦
strSql.Append(""+model.TBR+",");
strSql.Append(""+model.P_RJHH+",");//这行是字符,是不是要自己添加进去相应得代码啊?
strSql.Append(""+model.F_HWDM+",");
strSql.Append(""+model.F_DZDM+",");
strSql.Append(""+model.F_SHDWDM+",");
strSql.Append(""+model.JHCS+",");
strSql.Append(""+model.SPCS+",");
strSql.Append(""+model.SPBJ+",");
strSql.Append(""+model.JHZT+",");
strSql.Append(""+model.BEIZHU+"");
strSql.Append(")");
DbHelperOra.ExecuteSql(strSql.ToString());
return model.ID;
}

#37楼  回复 引用   

2006-03-30 17:17 by kkv[未注册用户]
!!!!!!期待2.0的!!!!!

#38楼  回复 引用   

2006-03-31 17:17 by 雨翼.net[未注册用户]
原来看blog 从不留言,

不过为了 DBTOCode 喝彩一下。

#39楼  回复 引用   

2006-03-31 17:54 by xt95[未注册用户]
DbHelperOleDb存在错误。public static bool Exists(string strSql, params SqlParameter[] cmdParms)
DbHelperOra存在错误。OracleDBType不存在,应为OracleType。
另:Oracle数据类型不正确,没有image、ntext等类型。

#40楼  回复 引用   

2006-03-31 21:01 by vicrly[未注册用户]
请教一个问题,我还不太了解三层架构。软件中自动生成的Model数据实体类的作用是?

#41楼  回复 引用 查看   

2006-04-01 00:47 by vboy      
自动生成数据库文档太慢了

#42楼  回复 引用   

2006-04-01 15:30 by 3Q[未注册用户]
非常感谢。^_^

#43楼  回复 引用   

2006-04-03 18:41 by wdn[未注册用户]
期待李兄下一期

#44楼  回复 引用   

2006-04-04 10:46 by 右岸[未注册用户]
我开始使用DB2Code的时候可以连接oracle数据库,当时是oracle9i的客户端,后来装了oracle10g的客户端之后,就无法连接数据库。
报错:Could not create an environment: OCIEnvCreate returned -1
其他Asp.net的项目也报了这个错。后来卸载oracle10g客户端后,出错的asp.net项目可以正常运行,但是DB2Code始终无法连接,重新安装后也不行。
查了网上一些资料,说是oracle的home目录权限不足,但是这是在ntfs格式下的问题,我的oracle客户端安装所在盘是fat32,访问权限是everyone完全控制。
不知道这是什么问题引起的……

#45楼  回复 引用   

2006-04-04 11:23 by 右岸[未注册用户]
呵呵,刚才那个问题搞定了,因为我卸载oracle10g之后,卸载程序没有删除10g的目录,并且环境变量设置也没有把oracle10g的bin路径去掉。。现在去掉之后一切正常。。

还有哦,如果用oracle连接的话,代码自动生成器的数据库管理器无法读取主键信息,这个有点不方便。如果能看到主键信息,就好了:)

#46楼  回复 引用   

2006-04-04 15:38 by 顶[未注册用户]
我在测试。

#47楼  回复 引用   

2006-04-04 19:03 by snowmaple[未注册用户]
才看到这个工具和基于这个工具的demo,我目前是在win2003 + vs2005环境下开发,demo工程调入vs2005环境下后,web部分子项目报错,调试后最终错误出在web config 文件,有没有和我一样遇到这个问题的,如何解决的??

出错部分:<compilation defaultLanguage="c#" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" extension=".cs" compilerOptions="/d:DEBUG;TRACE"/>
</compilation >

<assemblies><add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>



报错为:警告 2 未声明“type”属性。 E:\技术资料\DbToCodeDemo197\DbToCodeDemo\Web\Web.config 28 38 E:\...\Web\


警告 7 元素 “system.web” 的子元素 “assemblies” 无效。应为可能元素的列表: “anonymousIdentification, authentication, authorization, browserCaps, clientTarget, compilation, customErrors, deployment, deviceFilters, globalization, healthMonitoring, hostingEnvironment, httpCookies, httpHandlers, httpModules, httpRuntime, identity, machineKey, membership, mobileControls, pages, processModel, profile, roleManager, securityPolicy, sessionPageState, sessionState, siteMap, trace, trust, urlMappings, webControls, webParts, webServices, xhtmlConformance, caching”。 E:\技术资料\DbToCodeDemo197\DbToCodeDemo\Web\Web.config 31 4 E:\...\Web\


#48楼  回复 引用   

2006-04-06 10:15 by YingcongShaw[未注册用户]
报告一个小Bug:

SqlServer 2005数据库字段类型为uniqueidentifier的字段在生成Model时全为String .... 希望下个版本中能改为System.Guid,呵呵

#49楼  回复 引用 查看   

2006-04-10 23:18 by AlphaWu      
期待2.0的版本。。
李兄辛苦。。。

#50楼  回复 引用   

2006-04-12 14:00 by wq2000[未注册用户]
报告一个小Bug:
用oledb连接sql或oracle时无法设置连接字符串,总是使用那个默认的Jet.4.0


#51楼  回复 引用   

2006-04-13 16:26 by crazyp[未注册用户]
对于DAL层的日期、数字、布尔型的处理都有问题,如果人家不输入你非得给它一个默认值啊,这样能行吗?!

好象说不过去吧!

#52楼  回复 引用 查看   

2006-04-14 16:09 by zkxp      
严重同意楼上说法。或一艺术加工一下。

在AC数据库下有如下问题
1。使用AC数据库的时候DbHelperOledb.cs38行这里写成sql去了。
public static bool Exists(string strSql, params SqlParameter[] cmdParms)
OleDbDAL项目里的文件都错了。22行return DbHelperSQL.GetMaxID("SID", "Sort");
OleDbHelper BuildIntCommand函数里就是525行,OleDbType.Int这里应为OleDbType.Integer。

2。退出软件后似乎没断开AC数据库的连接,始终保持了个锁定文件在那。

3。BLL层的引用里居然出现了 using System.Data.OleDb;晕。把我看糊涂了。
不知道SQL里数据库里是不是同样出现SQLCLIENT的引用- -!BLL层都缺少 using BTCMS.DALFactory;的引用所以检查下,using System.Data.OleDb;这句需要改成using BTCMS.DALFactory;
严重不如上一个版本好用。

4。重新连接数据库后在选择数据库下拉里出现很多个重复的数据库名。

#53楼  回复 引用   

2006-04-16 19:29 by 阿军[未注册用户]
感谢天平!!

#54楼  回复 引用   

2006-04-17 15:37 by wangxincong[未注册用户]
如果能把数据库字段的注释读出来,并且设置在.aspx下就更好了,这样可以直接用而不改动了

#55楼  回复 引用   

2006-04-18 09:55 by -天道酬勤[未注册用户]
已对该版本做了一些更新,请重新下载!!

#56楼  回复 引用   

2006-04-19 23:18 by kkv[未注册用户]
辛苦!!大家都期待2.0的啊.
出的话,请第一时间通知我.zippro@163.com

#57楼  回复 引用   

2006-04-20 10:04 by crazyp[未注册用户]
看了你的修改版本了,还是没改正我说的问题,看来你是处理不了DAL层了,如果不行我可以帮你改!

#58楼  回复 引用   

2006-04-21 10:18 by YingcongShaw [未注册用户]
楼上的不如自己写个更NB的代码自动生成器?实在不想B4人

#59楼  回复 引用   

2006-04-25 11:05 by Hsin[未注册用户]
首先感謝天平兄的分享~小弟在執行時發現一個問題~
在存儲過程中好像無法正確執行~
一直說 GO 附近有問題~把GO語法拿掉就可以~
但是如此一來~就不能同時創建多個存儲過程~
因為CREATE PROCEDURE必須為第一行~

#60楼  回复 引用   

2006-04-26 03:35 by web[未注册用户]
程序很好
不过错误还比较多.
你该搞个地方让大家都来反馈错误.

#61楼  回复 引用   

2006-04-26 20:31 by hubro[未注册用户]
很不错
生成的存储过程老是加上了分页的存储过程
在执行ADD存储过程的方法里,第三个参数写的是OUT INT
这个写错了,应该是字符串

#62楼  回复 引用   

2006-05-05 00:29 by ProLogic[未注册用户]
李哥,真的很不错,但是给你提哟个意见,就是最好能把view的查询也加上,还有最好能弄成一个能自己编译的tool,能直接生成code以后自己编译成dll文件的,这样的话就更完美和方便了!

#63楼  回复 引用   

2006-05-05 19:38 by 夏迎风[未注册用户]
真的很感谢李兄!虽然我的水平还很低,但我一直希望自己也能像李兄一样做个开源的程序员,我会好好学习的。

#64楼  回复 引用   

2006-05-07 20:25 by 周伟[未注册用户]
支持李阁!

#65楼  回复 引用   

2006-05-08 17:14 by wzy0401[未注册用户]
tree怎么设置啊

#66楼  回复 引用   

2006-05-09 12:21 by haigear[未注册用户]
非常感谢!

#67楼  回复 引用   

2006-05-11 15:59 by bh812[未注册用户]
今天才看到这个东东,由于安装是1.1的asp.net就下载看了一下,没有用,就觉得很好,要是你一个开发,真的太让人敬佩了,即然你能共享,为什么不找一个地方把项目放出来,让大家参与,可能会搭建得更快,上面就有几十名热心人了.


真的谢谢你呀,

#68楼  回复 引用   

2006-05-12 17:49 by tree505[未注册用户]
能不能开一个技术论坛呢?或者一个QQ群..

因为现在出现错误了,都没法解决.出现的一个问题我已经忙了二天时间了..但
现在还得不到解决..

#69楼  回复 引用   

2006-05-30 18:53 by 陈陈[未注册用户]
数据报错:
应用程序中发生了未处理的异常,如果单击"继续",应用程序将忽略此错误并尝试继续,如果单击"退出",应用程序将立即关闭.
长度不能小于0。
参数名:length。

我装了1.9.6 、1.9.7版试着生成Oracle数据库的存储过程产生了以上错误,请李兄回复怎么才能处理,谢谢!

#70楼  回复 引用   

2006-06-16 10:32 by 和记[未注册用户]
当sqlserver的表中关键字段为自动递增时,由代码生成器产生的代码正确的
但代码自动输出产出的代码,不能正确认识自动递增字段,仍生成GetMaxId
和add方法中加入GetMaxID参数
今天装了这个版本的生成器,发现一个很奇怪的问题:我用程序连接本地数据没问题,可以列出数据库和表结构等的信息,但是想利用一下程序的查询分析器来查数据的时候却不行,只是显示 (所影响的行数为 -1 行),我的查询是:SELECT * from orders ,在Northwind数据库查询的,而且我是用sa登陆的,不知道为什么呢?谢谢

#72楼  回复 引用   

2006-06-22 12:34 by 无所适从[未注册用户]
这个工具好用,能成为斑竹这样的程序员是我的梦想,呵呵

#73楼  回复 引用   

2006-06-26 09:32 by 一挥[未注册用户]
当sqlserver的表中关键字段为自动递增时,由代码生成器产生的代码正确的
但代码自动输出产出的代码,不能正确认识自动递增字段,仍生成GetMaxId
和add方法中加入GetMaxID参数

#74楼  回复 引用   

2006-06-26 14:20 by alongchl[未注册用户]
如果可以在业务逻辑层来控制事务的开始与提交就更灵活了.

#75楼  回复 引用   

2006-06-28 20:11 by Tramper[未注册用户]
请问为什么不能插入bit类型的数据(Sql Server)

#76楼  回复 引用   

2006-07-04 10:52 by Alain/阿朗[未注册用户]
看了你的以后总体感觉还不错的!我自己也写了一个类似的ORM的小东东!不过技术不同而已!
我的现在还没有加入生成Web页面和WinForn页面的项能!
我采用的是基于三层的架构和基于强类型的方法!最后生成统一的访问Facade接口类;有增、删、改、按主码查询和按条件查询等方法,可以批量处理!暂时没有加入是否存在的方法,但可以允许程序自定义SQL!
程序员唯一要做是选择要生成的数据表、存储过程或者自定义SQL就可以了!在后继工作中如果表结构改变了,要进行数据表的同步操作,以便可以自动正确映射!
现在可以直接支持对SQLServer和Oracle的表到C#的代码自动生成,以后可能要加入VB.net或其他语言的生成!还要加入到其他数据库的支持!
在我的项目组中试用,效果非常好,让程序员从烦锁中解脱出来了!
以后还会研究更好的东东,希望能为程序员们作出一点贡献!
架构师:陈雄
E_Mail:13161086520@163.com
QQ号:273319893

#77楼  回复 引用   

2006-07-04 12:00 by Alain/阿朗[未注册用户]
To 李兄和全体LPT的用户:
如果数据表和字段的名称中有空格的话,LPT自动生成的代码就有问题了!建议将空格用下划线代替(若是发现表名或字段名称中有空格都应该在生成代码时都要用下划线替之)!
同时将生成的SQL语句中的宿主名、表名或字段有空格要加入双引号将其合起来!在SQLServer和Oracle都认加了双引号的名称,当然在SQLServer中也可以用中括号来引用!
我的实体生成器就是这么处理的!
希望李兄在LPT2.0时可以修正它,谢谢!
Alain/阿朗
2006-07-04

#78楼  回复 引用   

2006-07-04 13:01 by Alain/阿朗[未注册用户]
To 李兄:
建议不要走直接拼SQL语句的路,用参数传递就可以了,不然你要自己处理很多类型到SQL语句的转换问题, 上面有位仁兄就提到了这个问题, 我以前也碰到过!再说程序员一般也只用参数化的SQL语句,不容易出错,Facede类也可以直接调用相应的函数!
在SQLServer中参数前要加@,而Oracle中不用加!你要处理这种情况!
比如:
Select * From Table1 Where ID = @ID

Select * From Table1 Where ID = :ID
我认为前端不用处理这种差异,把它留在具体要执行的ICommnd中去处理这种具体的差别!这样对于程序员来说前端的SQL语句都是一样的, 至少在参数传递时是这样;
当然SQLServer和Oracle本身的语法差别还得程度员们自己来修改了,比如:SQLServer中有Top n,而Oracle中则没有,而要用RowNum来修改之;
.Net可以自动映射数据类型,但存储过程的参数类型就要自己处理了;
还有就是Oracle中的BFile字段类型比较特殊可能要做些特殊处理才行!

小弟就先提这么多,以后有机会再慢慢和你讨论!
希望李兄和全体LPT用户快乐健康每一天!
Alain/阿朗
2007-07-04

#79楼  回复 引用   

2006-07-04 18:07 by fans1[未注册用户]
1.96中,操作ACCESS数据库时,如果数据类型为单精度型,则代码生成器就看作是string,不知在1.97中修正没有?

#80楼[楼主]  回复 引用 查看   

2006-07-04 23:05 by 李天平      
@和记,这个是可以选择的,请看帮助。
@alongchl,抽时间在下个版本的demo里加入示例代码。
@Alain/阿朗,谢谢你的建议,首先纠正一下不是LPT,是LTP,发现很多人这个拼写是错误的。关于表名或字段的括起来的问题,已经在下个版本完善了。
拼SQL语句和用参数传递的方式以及存储过程的方式,都是提供了的,只是供大家方便之用,你可以根据自己情况和喜好选择任一种方式,示例项目里也提供了两种写法,只是为了方便一些初学者学习。
同时,大家可以下载2.0的测试版本试用,只需要装一下.net Framework 2.0的包即可。同样可以生成现有代码,只是比1.9.7版方便灵活了许多。可以同时适用于1.1和2.0的开发。

#81楼  回复 引用   

2006-07-29 11:02 by 阿..[未注册用户]
提好用的,说实话,我喜欢,如果基类可以选择,或者,执行代码的模版可以更改就好了,因为我们一直用企业程序库来实现数据访问,如果你的DbHelperSQL对象的相关代码可以自定义就好了~~~

#82楼  回复 引用   

2006-08-07 10:58 by liushui[未注册用户]
如果Model部分序列化提供序列化支持就好了!

#83楼  回复 引用   

2006-08-15 11:29 by 欧[未注册用户]
很很好

#84楼  回复 引用   

2006-08-29 16:58 by 雨恨云愁[未注册用户]
多谢

#85楼  回复 引用   

2006-08-30 21:26 by xxxx[未注册用户]
还没有用新版,
说说老版的

生成的代码 和所生成的类的名子不一致,

还得手工改!!

#86楼  回复 引用   

2006-09-26 17:06 by 粑粑糖[未注册用户]
为什么Bigint型的字段对应实体要生成为int类型的?应该是long型的吧?

#87楼  回复 引用   

2006-10-15 17:23 by 出生在80年代[未注册用户]
好人啊
http://www.85sp.cn
http://www.39sp.com.cn

#88楼  回复 引用   

2006-10-24 11:12 by keats.lau[未注册用户]
这个1.9.7的如果直接把源代码copy出来.原来的中文会变成乱码的..希望能update一下啦....

#89楼  回复 引用   

2006-12-05 09:01 by vake[未注册用户]
李老师的 .Net代码自动生成器确实很不错
如果可以把petshop的安装部署框架也加上来就更好了

#90楼  回复 引用   

2006-12-16 14:03 by TonyChen[匿名][未注册用户]
希望可以提供对Enterprise Library的支持,或提供模版扩展功能

#91楼  回复 引用   

2006-12-22 22:36 by sjzt[未注册用户]
李大师:问个很蠢的问题,
代码生成工具只会和数据库有关,怎会和VS2003 VS2005有关??
    我刚去公司上班没多久,公司都用ORACLE和VS2005
    不用SQLSERVER,公司的ASP.NET代码不管哪一层都
    是手工敲的,我就向公司推荐了你的工具,哈哈

#92楼  回复 引用   

2006-12-22 22:39 by sjzt[未注册用户]
我自己也作了一个验证控件,一个控件解决整个页面所有验证,NET验证控件是烂东西

#93楼  回复 引用   

2006-12-29 17:17 by zhouganiqng[未注册用户]
顶,谢谢李哥了。写代码方便多了。

#94楼  回复 引用   

2007-01-09 15:52 by cy6298[未注册用户]
此版本,我连Oracal时,导出代码文件,选择表时选择不了,为什么?我想用这个架构,着急呀,李大哥帮解决一下,非常感谢!

#95楼  回复 引用   

2007-01-09 21:23 by -天道酬勤[未注册用户]
非常感谢以上各位的支持和建议,我会尽快完善软件现有问题给大家提供尽可能的方便,有些问题可以通过查看软件帮助或下载示例项目源码的使用方法来解决,实在由于软件bug暂时不能直接编译通过的地方,还望大家自己辛苦手工修改一下代码,后期将整理这些问题,集中修改。

#96楼  回复 引用   

2007-01-16 19:39 by cy6298[未注册用户]

李哥,我用你的V1.9.7 版,发现如下错误,环境是vs2005,oracle,什么原因?谢谢!





“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 77: public DataSet GetAllList()
行 78: {
行 79: return dal.GetList("");
行 80: }
行 81:


源文件: C:\Documents and Settings\mzheng\My Documents\Visual Studio 2005\Projects\WRDB\BLL\BT.cs 行: 79

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
WRDB.BLL.BT.GetAllList() in C:\Documents and Settings\mzheng\My Documents\Visual Studio 2005\Projects\WRDB\BLL\BT.cs:79
Web.WebFormList.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\mzheng\My Documents\Visual Studio 2005\Projects\WRDB\WRDB\WebFormList.aspx.cs:21
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42

#97楼  回复 引用   

2007-01-26 15:34 by [匿名][未注册用户]
李兄,好像下载不了啊。。

#98楼[楼主]  回复 引用 查看   

2007-01-27 10:40 by 李天平      
@cy6298,请参考http://www.cnblogs.com/ltp/archive/2006/02/18/333295.html
@[匿名] 链接已修正,或者直接去http://www.maticsoft.com/softdown.aspx下载也可以

#99楼  回复 引用 查看   

2007-01-28 19:02 by 吴杰      
折腾了一个下午终于没有 “应用程序中的服务器错误“感觉好爽。
不过又来了个问题,又有“存储过程 bm_GetMaxId,没有参数,但却为该过程提供了参数” 明天继续解决。

#100楼  回复 引用 查看   

2007-02-05 17:28 by chaochao      
首先很感谢作者,作者通过自己的辛苦劳动帮助大家,但是,我用了以后发现生成的代码错误太多了,我用的是VS2005,也许是作者还没有支持吧。希望作者早点提供对VS2005的支持。

#101楼  回复 引用   

2007-02-06 10:59 by yoyokee[未注册用户]
很不错,研究一下
http://yoyokee.com 技术学习

#102楼  回复 引用   

2007-02-12 15:01 by soth[未注册用户]
非常感谢,研究一下先

#103楼  回复 引用   

2007-03-27 19:40 by 天涯海角[未注册用户]
为什么没有vb.net的,难道大家都在用c吗?

#104楼  回复 引用   

2007-04-04 11:08 by kk[未注册用户]
万分感谢

#105楼  回复 引用   

2007-04-04 23:26 by dengxy[未注册用户]
都没有一个版本支持oracle的存储过程...
根本没有生成的oralce语句,都是msssql的语句
对于oracle来说,根本帮不上什么忙的.
郁闷....郁闷....郁闷....郁闷....郁闷....郁闷....郁闷....郁闷....

期待新的版本出来能够支持................................................................................

#106楼  回复 引用   

2007-04-07 23:54 by oxsoft[未注册用户]
好东西,一直要支持

#107楼  回复 引用   

2007-06-01 00:25 by 狗娃[未注册用户]
老大 以前用的好好的 现在启动登陆 老是提示 连接错误 请检查用户名或者密码

#108楼  回复 引用   

2007-06-14 22:08 by kkkk[未注册用户]
老大要开出一个 winform 版本就好了^_^

#109楼  回复 引用 查看   

2007-06-16 18:29 by 岁月如歌      
我一直用这个生成器做WEB程序,今天搞了个WINFORM的,在调用ADD()方法时,提示INSERT INTO语句有错误.调试时把SQL语句贴到数据库中去执行,就可以通过.这是为什么?

#110楼  回复 引用   

2007-06-20 21:59 by -天道酬勤
@kkkk ,@岁月如歌 已经是三层结构的代码,除了web层的东西,其实生成的代码可以通用

#111楼  回复 引用 查看   

2007-08-05 23:49 by Blueeyes      
如果我用的主键用guid会报错,返回int与guid类型不一致

#112楼  回复 引用   

2007-10-09 14:58 by zhsong[未注册用户]
使用动软.Net代码自动生成器1.97版,生成的代码编译不了

错误如下:
z:\ltp\SQLServerDAL\User.cs(51,22): error CS0234:
类型或命名空间名称“Model”在类或命名空间“LTP”中不存在(是否缺少程序集
引用?)
z:\ltp\SQLServerDAL\User.cs(70,26): error CS0234:
类型或命名空间名称“Model”在类或命名空间“LTP”中不存在(是否缺少程序集
引用?)
z:\ltp\SQLServerDAL\User.cs(101,14): error CS0234:
类型或命名空间名称“Model”在类或命名空间“LTP”中不存在(是否缺少程序集
引用?)

#113楼  回复 引用   

2007-10-10 11:10 by -天道酬勤[未注册用户]
@zhsong 有些库是需要引用到项目的,不引用肯定编译不了啊
可以去网站下载示例项目源码参考。

#114楼  回复 引用   

2008-05-17 12:01 by 舒健[未注册用户]
这个产生分页SQL语句是有问题的,如果参数 fldName 与参数 sort不一致时,不可能完成分页的。

#region ConstructSplitSQL_sort(指定排序的表达式)

/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="sort">排序表达式</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL_sort(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string sort,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";

// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
//strWhere = strWhere.Replace("'", "''");
//strWhere = strWhere.Replace("--", "");
//strWhere = strWhere.Replace(";", "");

strOldWhere = " AND " + strWhere + " ";

strWhere = " WHERE " + strWhere + " ";
}

if (sort != "") sort = " ORDER BY " + sort;

// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";

//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";

//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";

strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";

strSQL += strOldWhere + sort;
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";

//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";

//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";

strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";

strSQL += strOldWhere + sort;
}
}
else // 异常处理
{
throw new DataException("未指定主索引排序类型。0升序,1为降序");
}

return strSQL;
}

#endregion
评论共2页: 上一页 1 2